Files
cloudflare_temp_email/vitepress-docs/docs/en/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.6 KiB

OAuth2 Third-Party Login

[!WARNING] Note Third-party login will automatically register an account using the user's email (emails with the same address will be considered the same account)

This account is the same as a registered account and can also set a password through the forgot password feature

Register OAuth2 on Third-Party Platforms

GitHub

  • Please first create an OAuth App, then obtain the Client ID and Client Secret

Reference: Creating an OAuth App

Linux Do

  • Create an application at Linux Do Connect to obtain Client ID and Client Secret
  • Linux Do returns a user ID instead of an email, so you need to enable the Email Format feature

Authentik

Configure OAuth2 in Admin Backend

oauth2

Configuration Fields

Field Description
Name OAuth2 provider name, displayed on the login page
Client ID OAuth2 application ID
Client Secret OAuth2 application secret
Authorization URL OAuth2 authorization endpoint
Access Token URL Endpoint to obtain Access Token
Access Token Params Format Token request format: json or urlencoded
User Info URL Endpoint to get user information
User Email Key Key for email field in user info, supports JSONPath (e.g., $[0].email)
Redirect URL OAuth2 callback URL
Scope OAuth2 permission scope

Email Format Transformation

When OAuth2 returns a non-standard email format (e.g., returns a user ID), you can enable the Email Format feature.

Field Description
Enable Email Format Enable email format transformation
Email Regex Pattern Regular expression to match the original value, use capture groups ()
Replace Template Replacement template, use $1, $2, etc. to reference capture groups

Examples:

Scenario Original Value Regex Pattern Replace Template Result
ID to Email 12345 ^(.+)$ linux_do_$1@oauth.linux.do linux_do_12345@oauth.linux.do
Change Domain john@old.com ^(.+)@old\.com$ $1@new.com john@new.com
Extract Username john@corp.com ^(.+)@.*$ $1@mymail.com john@mymail.com

Email Address Allow List

When enabled, only emails from specified domains can login.

Test User Login Page

oauth2 login