Ale*_*ona 7 google-fit google-signin flutter
我正在编写一个从 Flutter 调用 google fit rest api 的应用程序。
我需要使用(https://pub.dev/packages/google_sign_in)与谷歌签名。我可以毫无问题地获取令牌(请参阅是否有人设法从 google 登录 (Flutter) 获取 id 令牌)但是如何在过期时获取新令牌?
我不想要求用户每小时登录并获取一个新令牌
您可以通过两种方式做到这一点。
您可以使用API。
我不知道这是否是标准的,但您可以在silent login每次用户打开应用程序时执行此操作,静默日志会登录到用户帐户而无需用户交互,这样您就拥有了一个新令牌。像这样:
import 'package:google_sign_in/google_sign_in.dart';
// you may only login with google, delete hide part if not
import 'package:firebase_auth/firebase_auth.dart' hide EmailAuthProvider;
//...
Future<void> silentSignIn() async {
try {
final GoogleSignIn googleSignIn = GoogleSignIn();
final GoogleSignInAccount? googleUser =
await googleSignIn.signInSilently(); // silent login
if (googleUser != null) {
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
await FirebaseAuth.instance.signInWithCredential(credential);
print('User silently signed in with Google.');
} else {
print('No user signed in silently.');
// Optionally, redirect to a sign-in page
}
} catch (e) {
print('Error during silent sign-in: $e');
// Handle errors or redirect to a manual sign-in page
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2047 次 |
| 最近记录: |