Skip to content

OAuth2 第三方登录

注意

第三方登录会自动使用用户邮箱注册账号(邮箱相同将视为同一账号)

此账号和注册的账号相同, 也可以通过忘记密码设置密码

在第三方平台注册 OAuth2

GitHub

  • 请先创建一个 OAuth App,然后获取 Client IDClient Secret

参考 Creating an OAuth App

Linux Do

  • Linux Do Connect 创建应用获取 Client IDClient Secret
  • Linux Do 返回的是用户 ID 而非邮箱,需要启用邮箱格式转换功能

Authentik

Admin 后台配置 OAuth2

oauth2

配置字段说明

字段说明
NameOAuth2 提供商名称,显示在登录页面
Client IDOAuth2 应用 ID
Client SecretOAuth2 应用密钥
Authorization URLOAuth2 授权端点
Access Token URL获取 Access Token 的端点
Access Token Params FormatToken 请求格式:jsonurlencoded
User Info URL获取用户信息的端点
User Email Key用户信息中邮箱字段的 key,支持 JSONPath (如 $[0].email)
Redirect URLOAuth2 回调地址
ScopeOAuth2 权限范围

邮箱格式转换

当 OAuth2 返回的不是标准邮箱格式时(如返回用户 ID),可以启用邮箱格式转换功能。

字段说明
Enable Email Format启用邮箱格式转换
Email Regex Pattern正则表达式,用于匹配原始值,使用捕获组 ()
Replace Template替换模板,使用 $1$2 等引用捕获组

示例:

场景原始值正则表达式替换模板结果
ID 转邮箱12345^(.+)$[email protected][email protected]
换域名[email protected]^(.+)@old\.com$[email protected][email protected]
提取用户名[email protected]^(.+)@.*$[email protected][email protected]

邮件地址白名单

启用后,只有指定域名的邮箱才能登录。

测试用户登录页面

oauth2 login

基于 MIT 许可发布