功能特性登录鉴权

登录鉴权

ShipAny 目前支持 谷歌登录 / 谷歌一键登录 / Github 登录三种登录方式。

其他登录方式逐步集成,也可以参考 next-auth 文档自行接入。

生成 Auth Secret

在终端运行

Terminal
openssl rand -base64 32

生成一个 32 字节的随机字符串,作为 Auth Secret

修改环境变量中的 AUTH_SECRET

.env.development
AUTH_SECRET = "xxx"

谷歌登录

  1. 登录 Google Cloud Console

创建一个新项目,进入新项目的 Credentials 管理页面,创建 Oauth Client ID

google-console

  1. 根据你项目的运行端口,线上域名,配置必要的回调信息
  • 本地调试配置
callbackUrl
http://localhost:3000/api/auth/callback/google
  • 线上配置
callbackUrl
https://{your-domain}/api/auth/callback/google

google-clientid

创建 Oauth Client ID 后,得到 Client ID 和 Client Secret

  1. 修改配置文件中的 AUTH_GOOGLE_IDAUTH_GOOGLE_SECRET

开启谷歌登录:

.env.development
AUTH_GOOGLE_ID = "4680xx-xxx.apps.googleusercontent.com"
AUTH_GOOGLE_SECRET = "GOxxx"

NEXT_PUBLIC_AUTH_GOOGLE_ENABLED = "true"

谷歌一键登录

首先按照谷歌登录的步骤,拿到 AUTH_GOOGLE_IDAUTH_GOOGLE_SECRET

修改配置文件中的 NEXT_PUBLIC_AUTH_GOOGLE_ONE_TAP_ENABLEDNEXT_PUBLIC_AUTH_GOOGLE_ID

开启谷歌一键登录:

.env.development
NEXT_PUBLIC_AUTH_GOOGLE_ONE_TAP_ENABLED = "true"
NEXT_PUBLIC_AUTH_GOOGLE_ID = "4680xx-xxx.apps.googleusercontent.com"

谷歌一键登录使用到的 NEXT_PUBLIC_AUTH_GOOGLE_ID 跟谷歌登录配置的 AUTH_GOOGLE_ID 保持一致。

Github 登录

  1. 进入 Github Developer Settings

创建一个新的 OAuth app

  1. 填写 OAuth app 配置信息
callbackUrl
http://localhost:3000/api/auth/callback/github

github-callback

开发环境和生产环境,需要创建两个不同的 OAuth app,分别配置不同的回调地址。

  1. 进入 OAuth app,复制 Client IDClient Secret

  2. 修改配置文件中的 AUTH_GITHUB_IDAUTH_GITHUB_SECRET

开启 Github 登录:

.env.development
AUTH_GITHUB_ID = "xxx"
AUTH_GITHUB_SECRET = "xxx"
NEXT_PUBLIC_AUTH_GITHUB_ENABLED = "true"

登录预览

  1. 点击登录按钮,弹窗登录

login-preview

  1. 用户进入首页,提示一键登录

google-onetap

参考