Flutter谷歌登录服务器AuthCode



我在5.2.1 中使用这个颤振插件google_sign_in

工作良好我得到了的响应

{displayName: Mario Mc, email: myemail@gmail.com, id: 117816213074325689769, photoUrl: https://lh3.googleusercontent.com/a-/AOh14GgyaPy7ik693hjyIBmtW5IRXUdCXluaeI=s96-c, serverAuthCode: 4/0AX4XfWiqJ1DMfPaDbgf6gOFVMCfgMicyPqGk25bxjKfA4wq7bJCCu-TWRB8c3rAz_g}

我的问题是:什么是serverAuthCode?使用的id:117816213074325689769是什么

在我将该serverAuthCode发送到服务器后,我如何通过调用谷歌服务器来验证该代码是否合法(正如你所知,任何人都可以发送伪造的serverAuthCode,所以我们需要在保存或使用它之前进行验证(

我想在服务器端使用PHP感谢

您可以使用它来获取accessToken,然后将其发送到服务器

// sign In With Google 
_googleSignIn.signIn().then((userData) { 
userData.authentication.then((googleKey) {
setState(() { 
// Retrieve the email from Google auth 
googleEmail = userData.email;
googleId = userData.id;
googlePhotoUrl = userData.photoUrl;
googleServerAuthCode = userData.serverAuthCode;
googleAccessToken = googleKey.accessToken;
googleIdToken = googleKey.idToken;
});
print("googleAccessToken");
print(googleAccessToken);
// call your login function if no errors
checkInternetAndLoginWithGoogle();
}).catchError((err) {
print('inner error');
});
}).catchError((err) {
print('error occurred');
print(err);
});

在服务器端,您可以通过调用来验证该访问令牌

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=<access token>

如果该令牌是有效的或已过期的,您将得到答案

此外,你可以调用它来获取用户信息,如姓名、电子邮件、照片等。

https://www.googleapis.com/oauth2/v3/userinfo?access_token=<access token>

最新更新