使用 google_sign_in Flutter 通过刷新令牌获取新令牌
Obtain a new token by refresh token with google_sign_in Flutter
我正在编写一个从 Flutter 调用 google fit rest api 的应用程序。
我需要使用 (https://pub.dev/packages/google_sign_in) 与 google 签约。
我可以毫无问题地获取令牌(参见)但是当令牌过期时如何获取新令牌?
我不想要求用户每小时登录并获取一个新令牌
您可以通过两种方式完成此操作。
您可以使用 API.
我不知道这是否是标准的,但你可以做一个 silent login
每次用户打开应用程序时,静默日志会在没有用户交互的情况下登录用户帐户,这你有一个新令牌的方式。像这样:
Future<String> refreshToken() async {
print("Token Refresh");
final GoogleSignInAccount googleSignInAccount =
await googleSignIn.signInSilently();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
final AuthResult authResult = await auth.signInWithCredential(credential);
return googleSignInAuthentication.accessToken; // New refreshed token
}
我正在编写一个从 Flutter 调用 google fit rest api 的应用程序。
我需要使用 (https://pub.dev/packages/google_sign_in) 与 google 签约。
我可以毫无问题地获取令牌(参见
我不想要求用户每小时登录并获取一个新令牌
您可以通过两种方式完成此操作。
您可以使用 API.
我不知道这是否是标准的,但你可以做一个
silent login
每次用户打开应用程序时,静默日志会在没有用户交互的情况下登录用户帐户,这你有一个新令牌的方式。像这样:
Future<String> refreshToken() async {
print("Token Refresh");
final GoogleSignInAccount googleSignInAccount =
await googleSignIn.signInSilently();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
final AuthResult authResult = await auth.signInWithCredential(credential);
return googleSignInAuthentication.accessToken; // New refreshed token
}