主题
Google 登录配置
一句话
去 Google Cloud Console 建一个 OAuth 客户端 ID,把那串填进后台,打开开关。约 10 分钟。
界面会变,功能不会
Google Cloud Console 的菜单每年都在调整。下面写的是要找什么, 不是"点第几个按钮"。名字对不上时按功能找同义词。
为什么值得配
跨境场景下,Google 账号的覆盖率很高。一键登录能省掉: 填邮箱 → 等验证码 → 翻垃圾箱 → 设密码 这一整串。
首次用 Google 登录会自动注册
系统会自动建一个会员,并把 Google 那边的昵称、头像带过来, 邮箱直接标记为已验证(不用再发验证码)。再次登录走已绑定的路径。
第 1 步:建一个项目
- 打开 https://console.cloud.google.com
- 顶部的项目下拉 → 新建项目
- 名字随便取(比如
mall-shop),建完确认右上角切到了这个项目
第 2 步:配置「OAuth 同意屏幕」
在建凭据之前,Google 要求先配这个 —— 它决定买家点登录时看到的那个授权页长什么样。
找 API 和服务 → OAuth 同意屏幕(或 Google Auth Platform → 品牌信息)。
| 项 | 填什么 |
|---|---|
| User Type / 用户类型 | 外部(External)—— 你的买家不是你组织内的人 |
| 应用名称 | 你的商城名(买家会看到"XX 商城 想要访问你的账号") |
| 用户支持电子邮件 | 你的客服邮箱 |
| 应用徽标 | 你的 Logo(可选,但填了更可信) |
| 应用首页 | https://你的域名 |
| 隐私权政策链接 | https://你的域名/pages/privacy-policy |
| 服务条款链接 | https://你的域名/pages/terms-of-service |
| 已获授权的网域 | 你的域名(不带 https://) |
| 开发者联系信息 | 你的邮箱 |
范围(Scopes):只需要最基本的三个,通常默认就有:
openid
.../auth/userinfo.email
.../auth/userinfo.profile不要申请多余的权限
只要邮箱和基本资料。多申请(比如通讯录、云端硬盘)会: ① 触发 Google 的人工审核,几周起步; ② 授权页上列一堆吓人的权限,买家直接不点了。
「测试」和「已发布」状态
刚建好时应用处于测试状态,只有你手动加进「测试用户」列表的账号能登录。
正式开卖前,把它发布 / 切到生产。只申请了上面三个基础范围的话, 通常不需要 Google 人工审核,点一下发布就生效。
第 3 步:创建 OAuth 客户端 ID
找 API 和服务 → 凭据(Credentials)→ 创建凭据 → OAuth 客户端 ID。
| 项 | 填什么 |
|---|---|
| 应用类型 | Web 应用(不是"其他",不是"桌面应用") |
| 名称 | 随便,比如 mall-web |
已获授权的 JavaScript 来源
这一项必须填对,否则登录按钮点了会报错。
https://你的域名比如 https://jdz.io
三个常见的填法错误
- ❌ 带路径:
https://jdz.io/account/login - ❌ 带结尾斜杠:
https://jdz.io/ - ❌ 用
http:正式站必须https
只填「协议 + 域名」,别的都不要。
如果你的站同时用 www 和裸域名
两个都加进去:https://jdz.io 和 https://www.jdz.io。 (不过本系统的 www 会自动 301 跳到裸域名,所以一般只要裸域名。)
已获授权的重定向 URI
本系统不需要填
我们用的是 Google 的 Google Identity Services(前端一键登录), 不走"跳到 Google 再跳回来"的传统流程,所以没有重定向地址。
这一栏留空即可。填了也不影响。
创建完会弹出 客户端 ID,形如:
1234567890-abcdefghijklmnop.apps.googleusercontent.com复制它。(旁边的 Client Secret 本系统用不到,不用管。)
第 4 步:填回后台
后台 → 站点管理 → 站点设置 → 功能开关
| 字段 | 填什么 |
|---|---|
| Google 登录 | 打开 |
| Client ID | 刚复制的那一长串 ....apps.googleusercontent.com |
保存。
第 5 步:验证
- 打开商城的登录页(用无痕窗口,避免自己已登录的干扰)
- 应该能看到 Google 的登录按钮
- 点一下,用一个 Google 账号登录
- 回到商城应该已经是登录状态,个人中心里能看到昵称和头像
顺便验一下关掉的情况
回后台把开关关掉,刷新登录页 —— Google 按钮应该立刻消失。
这能确认开关是真的生效,而不是只藏了个入口。
常见问题
按钮上的文字是中文,但我是英文站
按钮的语言跟买家浏览器的语言走,不跟站点语言走。
系统已经处理了这个:加载 Google 脚本时会带上站点语言(?hl=en)。 如果你看到的仍然是中文,先强制刷新(Ctrl + F5)。
★ 顺带说一句,这个问题不能靠 renderButton({locale}) 解决 —— Google 的脚本在加载那一刻就定了语言包,渲染时再传参数是没用的。
点按钮报 origin_mismatch / 不是有效来源
「已获授权的 JavaScript 来源」填错了。回去检查:
- 有没有多写路径或结尾斜杠
- 是不是写成了
http - 改完 Google 那边可能要几分钟才生效,等一下再试
登录页上根本没有 Google 按钮
- 后台开关打开了吗
- Client ID 填了吗(只开开关不填 ID 是不会显示的)
- 强制刷新一次
- 浏览器控制台(F12)看有没有脚本被拦截 —— 有些广告拦截插件会拦掉 Google 的登录脚本
提示「此应用未经验证」
应用还在测试状态。去 OAuth 同意屏幕把它发布。
只申请了 openid / email / profile 三个基础范围的话,一般不需要人工审核。
同一个邮箱,之前用密码注册过,现在用 Google 登录会怎样
系统按邮箱认人,会认成同一个会员,订单和收藏都还在。 不会出现"同一个人两个账号"。