美文网首页PHP程序员
PHP实现APP使用谷歌授权登录获取用户信息

PHP实现APP使用谷歌授权登录获取用户信息

作者: php转go | 来源:发表于2021-01-13 12:20 被阅读0次

    谷歌官方服务器进行身份验证链接

    https://developers.google.com/identity/sign-in/web/backend-auth
    

    如果您将Google登录用于与后端服务器通信的应用或网站,则可能需要识别服务器上当前登录的用户。为了安全地执行此操作,在用户成功登录后,请使用HTTPS将用户的ID令牌发送到您的服务器。然后,在服务器上,验证ID令牌的完整性,并使用令牌中包含的用户信息建立会话或创建新帐户。

    PHP实现

    引入Google官方扩展

    composer require google/apiclient
    

    php代码

    require_once 'vendor/autoload.php';
    //客户端授权后获取到id_token,再传给后端去获取授权信息,入库处理
    $id_token=$_POST['id_token'];
    $client = new Google_Client(['client_id' => $CLIENT_ID]);  // Specify the CLIENT_ID of the app that accesses the backend
    $payload = $client->verifyIdToken($id_token);
    if ($payload) {
      $userid = $payload['sub'];
      // If request specified a G Suite domain:
      //$domain = $payload['hd'];
    } else {
      // Invalid ID token
    }
    
    {
     // 这六个字段包含在所有Google ID令牌中。
     "iss": "https://accounts.google.com",
     "sub": "110169484474386276334",
     "azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
     "aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
     "iat": "1433978353",
     "exp": "1433981953",
    
     // 仅当用户 向应用程序授予了“配置文件”和/或“电子邮件” OAuth范围时,才包含这七个字段。
     "email": "testuser@gmail.com",
     "email_verified": "true",
     "name" : "Test User",
     "picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg",
     "given_name": "Test",
     "family_name": "User",
     "locale": "en"
    }
    

    相关文章

      网友评论

        本文标题:PHP实现APP使用谷歌授权登录获取用户信息

        本文链接:https://www.haomeiwen.com/subject/bzsdaktx.html