谷歌授权登录APP (PHP部分)

在谷歌查看自己的client_id  网址: https://console.cloud.google.com/apis/credentials

用composer 安装谷歌的扩展包 我这里下载的是 2.12.1 版本  要求 PHP 5.6.0或更高版本
composer require google/apiclient

// 这里要注意 这样会安装全部的谷歌扩展 我们目前只用到谷歌登录 所以可以修改 composer.json 文件  控制下载指定扩展
// 如下代码所示 只保留Drive和YouTube 
 {
     "require": {
         "google/apiclient": "2.12.1"
   },
   "scripts": {
         "pre-autoload-dump": "Google\\\Task\\\Composer::cleanup"
   },
   "extra": {
         "google/apiclient-services": \[
             "Drive",
             "YouTube"   \]
     }
 }
 // 这个时候就可以使用谷歌的扩展 来验证 id_token
 // APP通过接入谷歌授权  获取到id_token 通过接口传给后端来验证
 
 $client =  new  Google_Client(\['client_id'  => $CLIENT_ID\]); // 前面获取到的client_id
 $payload = $client->verifyIdToken($id_token);
 if  ($payload)  {
 $userid = $payload\['sub'\];
  // If request specified a G Suite domain:
  //$domain = $payload\['hd'\];
 }  else  {
  // Invalid ID token
 }

参考文档:

https://developers.google.com/identity/sign-in/android/backend-auth#using-a-google-api-client-library

https://github.com/googleapis/google-api-php-client

https://www.jianshu.com/p/72d917e1bccf

posted @ 2022-11-30 14:42  niniko  阅读(859)  评论(0编辑  收藏  举报