功能描述
为项目添加 Google OAuth 社交登录支持,允许用户使用 Google 账号进行注册和登录。
问题陈述
目前项目仅支持 GitHub OAuth 作为社交登录方式。然而,OTA 平台的用户画像和 GitHub 用户重合度不高,大部分普通用户更倾向于使用 Google 账号登录。添加 Google OAuth 支持可以:
提升用户注册和登录的便利性
覆盖更广泛的用户群体
提供更符合 OTA 平台用户习惯的登录方式
与 GitHub OAuth 形成互补,满足不同用户的需求
建议的解决方案
在 better-auth 配置中添加 Google 作为社交登录提供商。
技术实现步骤
在 Google Cloud Console 创建 OAuth 应用
访问 Google Cloud Console
创建新项目或选择现有项目
启用 Google+ API
创建 OAuth 2.0 客户端 ID
配置授权重定向 URI:https://yourdomain.com/api/auth/callback/google
获取 Client ID 和 Client Secret
配置环境变量
在 .env 文件中添加:
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
更新 better-auth 配置
在 src/lib/auth.ts 中添加 Google 提供商:
export const auth = betterAuth ( {
// ... 其他配置
socialProviders : {
github : {
clientId : process . env . GITHUB_CLIENT_ID as string ,
clientSecret : process . env . GITHUB_CLIENT_SECRET as string ,
} ,
google : { // 新增
clientId : process . env . GOOGLE_CLIENT_ID as string ,
clientSecret : process . env . GOOGLE_CLIENT_SECRET as string ,
} ,
} ,
} ) ;
更新登录页面 UI
在登录/注册页面添加 Google 登录按钮,调用:
await authClient . signIn . social ( {
provider : "google" ,
callbackURL : "/" ,
} ) ;
更新 .env.example
添加 Google OAuth 相关的环境变量说明。
用户故事
作为一个普通用户,我希望能够使用我的 Google 账号快速注册和登录系统,而不需要记住额外的用户名和密码,这样我可以更方便地使用平台服务。
UI/UX 考虑
在登录/注册页面添加 Google 登录按钮
使用 Google 官方的品牌指南设计按钮样式
按钮应显示 Google logo 和「使用 Google 登录」文字
与现有的 GitHub 登录按钮保持一致的设计风格
在账号绑定页面(issue [FEAT] 添加 "个人中心 > 绑定和关联" 页面 #130 )中显示 Google 绑定状态
技术考虑
实现复杂度: 低
潜在的破坏性变更: 否
需要的依赖:
better-auth (已有)
Google Cloud Console OAuth 应用配置
验收标准
相关问题
参考文档
功能描述
为项目添加 Google OAuth 社交登录支持,允许用户使用 Google 账号进行注册和登录。
问题陈述
目前项目仅支持 GitHub OAuth 作为社交登录方式。然而,OTA 平台的用户画像和 GitHub 用户重合度不高,大部分普通用户更倾向于使用 Google 账号登录。添加 Google OAuth 支持可以:
建议的解决方案
在 better-auth 配置中添加 Google 作为社交登录提供商。
技术实现步骤
在 Google Cloud Console 创建 OAuth 应用
https://yourdomain.com/api/auth/callback/google配置环境变量
在
.env文件中添加:更新 better-auth 配置
在
src/lib/auth.ts中添加 Google 提供商:更新登录页面 UI
在登录/注册页面添加 Google 登录按钮,调用:
更新 .env.example
添加 Google OAuth 相关的环境变量说明。
用户故事
作为一个普通用户,我希望能够使用我的 Google 账号快速注册和登录系统,而不需要记住额外的用户名和密码,这样我可以更方便地使用平台服务。
UI/UX 考虑
技术考虑
验收标准
GOOGLE_CLIENT_ID和GOOGLE_CLIENT_SECRET已配置.env.example文件已更新,包含 Google OAuth 配置说明相关问题
参考文档