演示如何把「使用 Google 账号登录」接到自己的 PHP 站点。代码刻意保持精简,便于复制到现有项目的控制器或路由中。提供 oauth_start / oauth_callback / logout 最小闭环与可复用封装,Session 中保存规范化用户信息。配置与路径建议写清,减少 redirect_uri_mismatch 类问题。
中文市场示例:演示如何把「使用 Google 账号登录」接到自己的 PHP 站点。代码刻意保持精简,便于复制到现有项目的控制器或路由中。
程序版本号:常量 GMAIL_OAUTH_APP_VERSION(默认 inc/gmail_oauth_version.php;可在 config.php 覆盖);首页页脚展示。
state 校验与 token 交换,初次集成门槛高。session_regenerate_id。inc/oauth_google.php 可复用封装,Session 中保存规范化用户信息。redirect_uri_mismatch 类问题。hash_equals;PHP 7+ 优先使用 random_bytes 生成 state)本示例位于:gmail login/gmail-oauth-login-php-cn-sample/(若从压缩包解压,请保持该目录结构或整体拷贝到站点目录)。
将 gmail-oauth-login-php-cn-sample 目录置于 Web 可访问路径。
http://localhost/gmail-oauth-login-php-cn-sample/)。gmail login),浏览器需使用空格编码 %20,且 Google Console 登记的 redirect_uri 必须与最终访问 URL 完全一致。复制 config.example.php 为 config.php,填写:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_REDIRECT_URI:必须与 Google Console「已授权的重定向 URI」完全一致,一般为http://你的域名/.../oauth_callback.php(末尾脚本名按实际路径)。打开 Google Cloud Console → APIs & Services → Credentials,创建 OAuth 2.0 Client ID(Web application),在 Authorized redirect URIs 中填入上一步的 GOOGLE_REDIRECT_URI,保存。
浏览器访问 index.php,点击「使用 Google 登录」完成授权;成功后用户信息会保存在 PHP Session 的 $_SESSION['google_login'] 中。
演示首页底部设有官网入口,如需了解更多产品与文档可由此访问(链接地址在 index.php 中配置,整合到自己站点时可按需修改或删除)。
| 文件 | 作用 |
|---|---|
config.example.php |
配置模板(可选覆盖 GMAIL_OAUTH_APP_VERSION) |
inc/gmail_oauth_version.php |
程序版本号默认值 |
inc/oauth_google.php |
构造授权 URL、用 code 换 token、拉取 userinfo;整合时可只迁移此文件与你的配置方式 |
oauth_start.php |
写入 state 并跳转 Google |
oauth_callback.php |
校验 state、换 token、写入 Session |
index.php |
演示首页 |
logout.php |
退出演示 Session |
session_regenerate_id(true)(本示例已在回调中调用);根据框架使用其 Session/Cookie 策略。oauth_callback.php 拿到 $user 后,用你的用户表按 email 或 Google 返回的 id(userinfo 中的唯一标识)做「查找或注册」,不要依赖本示例中的 Session 结构。GOOGLE_CLIENT_SECRET 仅放在服务端配置文件或环境变量,勿提交到公开仓库。GOOGLE_REDIRECT_URI 一致。更通用的概念说明见仓库内:gmail login/gmail_oauth_安装配置指南.md。
Project: PHPDisk - 私有云存储解决方案
This is NOT a freeware, use is subject to license terms.
Website: https://www.phpdisk.com
Author: PHPDisk Team ( admin@phpdisk.com )
Copyright (C) 2008-2026 PHPDisk Team. All Rights Reserved.
如需定制功能,或查看更多示例与源码索引,请访问:https://code.phpdisk.com/?utm_source=gmail-oauth-php-cn-readme
Comments
No comments yet—be the first!