Flutter google 登录serverAuthCode

Flutter google sign in serverAuthCode

我正在用这个 flutter plugin google_sign_in 5.2.1

效果很好我收到了回复

{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 发送到服务器后,我如何通过调用 google 服务器来验证代码是否合法(如您所知,任何人都可以发送虚假的 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>