Warn users when they try to use a non-root-url to sign in/up (#32272)

This commit is contained in:
wxiaoguang 2024-10-17 10:28:51 +08:00 committed by GitHub
parent 603fca1e27
commit 0196b3583a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 2 deletions

View File

@ -91,3 +91,11 @@ export function checkAppUrl() {
showGlobalErrorMessage(`Your ROOT_URL in app.ini is "${appUrl}", it's unlikely matching the site you are visiting. showGlobalErrorMessage(`Your ROOT_URL in app.ini is "${appUrl}", it's unlikely matching the site you are visiting.
Mismatched ROOT_URL config causes wrong URL links for web UI/mail content/webhook notification/OAuth2 sign-in.`, 'warning'); Mismatched ROOT_URL config causes wrong URL links for web UI/mail content/webhook notification/OAuth2 sign-in.`, 'warning');
} }
export function checkAppUrlScheme() {
const curUrl = window.location.href;
// some users visit "http://domain" while appUrl is "https://domain", COOKIE_SECURE makes it impossible to sign in
if (curUrl.startsWith('http:') && appUrl.startsWith('https:')) {
showGlobalErrorMessage(`This instance is configured to run under HTTPS (by ROOT_URL config), you are accessing by HTTP. Mismatched scheme might cause problems for sign-in/sign-up.`, 'warning');
}
}

View File

@ -1,4 +1,9 @@
import {checkAppUrl} from './common-page.ts'; import {checkAppUrl, checkAppUrlScheme} from './common-page.ts';
export function initUserCheckAppUrl() {
if (!document.querySelector('.page-content.user.signin, .page-content.user.signup, .page-content.user.link-account')) return;
checkAppUrlScheme();
}
export function initUserAuthOauth2() { export function initUserAuthOauth2() {
const outer = document.querySelector('#oauth2-login-navigator'); const outer = document.querySelector('#oauth2-login-navigator');

View File

@ -24,7 +24,7 @@ import {initFindFileInRepo} from './features/repo-findfile.ts';
import {initCommentContent, initMarkupContent} from './markup/content.ts'; import {initCommentContent, initMarkupContent} from './markup/content.ts';
import {initPdfViewer} from './render/pdf.ts'; import {initPdfViewer} from './render/pdf.ts';
import {initUserAuthOauth2} from './features/user-auth.ts'; import {initUserAuthOauth2, initUserCheckAppUrl} from './features/user-auth.ts';
import { import {
initRepoIssueDue, initRepoIssueDue,
initRepoIssueReferenceRepositorySearch, initRepoIssueReferenceRepositorySearch,
@ -219,6 +219,7 @@ onDomReady(() => {
initCommitStatuses, initCommitStatuses,
initCaptcha, initCaptcha,
initUserCheckAppUrl,
initUserAuthOauth2, initUserAuthOauth2,
initUserAuthWebAuthn, initUserAuthWebAuthn,
initUserAuthWebAuthnRegister, initUserAuthWebAuthnRegister,