Files
cloudflare_temp_email/vitepress-docs/docs/zh/guide/feature/user-oauth2.md
Dream Hunter decede7ed3 feat(oauth2): add email format transformation support (#818)
* feat(oauth2): add email format transformation support

- Add enableEmailFormat, userEmailFormat, userEmailReplace fields
- Support regex pattern matching and replacement template ($1, $2, etc.)
- Add Linux Do OAuth2 template with email format pre-configured
- Add input length limit (256 chars) to prevent ReDoS attacks
- Update admin UI with conditional display and tooltips
- Update documentation (zh/en) with configuration examples

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update lock files and version

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: restore accessTokenFormat as optional field

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:30:44 +08:00

2.3 KiB
Raw Blame History

OAuth2 第三方登录

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

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

在第三方平台注册 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

配置字段说明

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

邮箱格式转换

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

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

示例:

场景 原始值 正则表达式 替换模板 结果
ID 转邮箱 12345 ^(.+)$ linux_do_$1@oauth.linux.do linux_do_12345@oauth.linux.do
换域名 john@old.com ^(.+)@old\.com$ $1@new.com john@new.com
提取用户名 john@corp.com ^(.+)@.*$ $1@mymail.com john@mymail.com

邮件地址白名单

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

测试用户登录页面

oauth2 login