-
Notifications
You must be signed in to change notification settings - Fork 1
OAuth Config
FlecBlog 支持通过第三方账号快速登录,基于 Goth 库实现,目前支持 GitHub、Google、QQ、Microsoft 等主流平台。
进入 GitHub Developer Settings 点击 New OAuth App 填写信息:
Homepage URL:应用主页 URL,如 https://博客域名
Application description:应用描述,展示给正在登录的用户
Authorization callback URL:回调地址 https://后端域名/api/v1/auth/github/callback
创建完成后复制 Client ID 和生成 Client Secret
我们首先需要访问 Google API Console 获取 OAuth 2.0 凭据,点击左侧边栏的 凭证 选项 创建一个 OAuth 客户端 ID
已获授权的 JavaScript 来源:应用主页 URL,如 https://博客域名
已获授权的重定向 URI:回调地址 https://后端域名/api/v1/auth/google/callback
创建后,就可以看到 客户端 ID 和新增 客户端密钥 (可选)还可以在左侧边栏的 品牌塑造 里,设置应用信息来获得更长时间的支持
进入 QQ 互联 创建应用 选择创建网站应用,类型选择其他,名称建议使用博客名称,描述自定义 填写站点信息
网站地址:应用主页 URL,如 https://博客域名
QQ互联WIKI 在此处找客服,建议选择腾讯开放平台网站客服,响应还是比较快的
创建完成后就可以看到 APP ID 和 APP Key
提示:官方文档里说审核需要花费 5 个工作日,如果不想等可以去上方提到的位置找客服(应该能立即通过)
进入 Azure Portal 在 Azure 服务里找到 Microsoft Entra ID 进入,在左侧边栏找到应用注册,添加新注册 注册应用程序
重定向 URI: 回调地址 https://后端域名/api/v1/auth/microsoft/callback
在左侧边栏找到 API 权限,添加 openid, profile, email(Microsoft Graph)
(可选)还可以在左侧边栏的 品牌打造和属性 里,设置应用信息来获得更专业的形象
未来会不断去支持一些常用的登录方式
目前项目的登录方式支持五种: 邮箱密码登录 四个 OAuth 登录 然而目前登录主要用于评论系统,它又提供了一种登录方式,即匿名登录。用户只需要提供昵称和邮箱,就可以完成,同时该用户会以游客身份记录在用户表中。 此时体现出邮箱作为用户唯一字段的重要性,简化了一层与用户名的转换,同时当新用户注册,可以根据获取到的邮箱与现有用户表中做对比,当存在游客使用过该邮箱,那么新增用户操作就会变成角色提升操作。 这样的设计,可以极大程度确保用户账号唯一性,但有例外:QQ 登录。该方式登录返回的凭证没有邮箱字段,也就是说无法进行邮箱对比,也就是说,QQ 登录的用户一定是新用户。(当然,如果一个游客的三方账号绑定的邮箱和游客邮箱不一致同样无法对比到,单独提到 QQ 是因为它连对比到的概率都没有) 把 QQ 登录结合评论系统一块来看,就能发现一个问题,评论系统是依靠用户或者游客的邮箱进行回信的,而 QQ 登录的用户邮箱是系统分配的一个随机邮箱,它无法让 QQ 登录的用户收到回信。 以上就是我对整个登录系统的概况,在保证绝对严密逻辑下,总有一些外部因素导致出现逻辑漏洞,QQ 登录作为国内主流登录方式之一,几乎是不可缺少的登录方式,只能去适应了。 我对登录系统还有很多想法,会再逐一实现,尽可能避免邮箱不一致的问题。
相关页面: