Google OAUTH + OpenID 实现登录共享代码
时间: 2023-10-05 21:08:17 浏览: 40
以下是一个简单的 PHP 代码示例,演示如何使用 Google OAuth 和 OpenID Connect 实现登录共享:
```php
// 引入 Google API 客户端库
require_once 'vendor/autoload.php';
// 初始化 Google API 客户端库
$client = new Google_Client();
$client->setAuthConfig('path/to/client_secret.json');
$client->addScope('openid email profile');
// 处理登录请求
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login'])) {
// 构建登录 URL
$client->setState($_POST['redirect_url']);
$authUrl = $client->createAuthUrl();
// 重定向到 Google 登录页面
header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL));
exit;
}
// 处理回调请求
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['code'])) {
// 从 Google 获取访问令牌
$client->fetchAccessTokenWithAuthCode($_GET['code']);
// 获取用户信息
$idToken = $client->verifyIdToken();
$userInfo = $client->verifyIdToken()->getClaims();
// 处理用户信息并显示欢迎页面
// ...
}
```
此代码片段假定您已经通过 Composer 安装了 Google API 客户端库,并已经创建了一个 Google Cloud Platform 项目并启用了相关的 API。在代码中,您需要将 `path/to/client_secret.json` 替换为您的 Google API 客户端密钥的路径。您还需要根据您的应用程序需求调整所需的作用域。在处理回调请求时,您可以使用 `$idToken` 和 `$userInfo` 变量来获取用户的唯一标识符和其他信息,以便进行登录共享和其他操作。