使用google_sign_in Flutter通过刷新令牌获取新令牌

问题描述 投票:1回答:1

我正在编写一个从Flutter调用google fit rest api的应用程序。

我需要使用(https://pub.dev/packages/google_sign_in)与Google签名。我可以毫无问题地获取令牌(请参阅Did anyone manage to get the id token from google sign in (Flutter)),但是过期时如何获取新令牌?

我不想让用户每小时登录并获取新令牌

flutter google-signin google-fit
1个回答
1
投票

您可以通过两种方式执行此操作。

  1. 您可以使用API

  2. 我不知道这是否是标准的,但是每次用户打开应用程序时您都可以执行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
  }
© www.soinside.com 2019 - 2024. All rights reserved.