mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-15 17:36:00 +00:00
33498f828d
Backport #38880 by @lunny This is a prepare and required step for upcoming Gitea Official Mobile APP which supports login with OAuth2. Gitea already pre-registers OAuth2 applications for a few universally useful clients (`git-credential-oauth`, Git Credential Manager and `tea`), so those tools can run an Authorization Code + PKCE login against any instance without the user having to create an OAuth application by hand. The official Gitea mobile app needs the same mechanism. This adds a builtin application for it: | | | |---|---| | client ID | `b757811a-05c8-4c76-8d74-a5ee3d2073f2` | | config name | `gitea-app` | | display name | `Gitea App` | | redirect URI | `com.gitea.app://oauth/callback` | Unlike the existing entries, which are CLIs and can therefore use a loopback `http://127.0.0.1` redirect, a mobile app authorises through a system browser session (`ASWebAuthenticationSession` on iOS, Custom Tabs on Android) that can only receive a custom-scheme callback, hence the custom scheme here. Notes: * Builtin applications are inserted directly by `auth.Init`, so they do not pass through `DetectInvalidOAuth2ApplicationRedirectURI`, which is only applied to user- and API-created applications. No `[oauth2] CUSTOM_SCHEMES` configuration is required for this to work, and `ContainsRedirectURI` matches the URI by normalised string comparison. * Instances that do not want the application pre-registered can drop `gitea-app` from `[oauth2] DEFAULT_APPLICATIONS`, exactly as with the existing entries; `auth.Init` then deletes it again. * The client is public: no client secret, PKCE `S256` required. --- Generated by Codet Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>