mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 15:36:33 +00:00
3d7e8be9aa
An SSO login that matched no account by its subject took the account with the same email address and linked the provider identity to it. That address proves nothing when the account typed it in itself: anyone could sign up with, or switch their profile to, a colleague's address and receive the colleague's first SSO login. The provider switch branch (#2110) relinked a row on any email match without even asking for email_verified, and also for another subject of the same provider. users.email_self_asserted remembers an address the account set itself: signup (not the first account) and an email change in the profile settings set it, an admin entering a new address clears it, and accounts the provider creates start without it. Existing accounts keep linking, except those whose address moved away from the registered one without an admin editing it. A login by email now needs a verified address and an unmarked account, and is refused for another subject of the same issuer, with email_link_blocked and a translated message on the login screen. An email change in the profile settings writes a user.email_change audit row. Refs #2110
81 lines
9.1 KiB
TypeScript
81 lines
9.1 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const login: TranslationStrings = {
|
|
'login.error': 'การเข้าสู่ระบบล้มเหลว กรุณาตรวจสอบข้อมูลประจำตัวของคุณ',
|
|
'login.tagline': 'การเดินทางของคุณ\nแผนของคุณ',
|
|
'login.description': 'วางแผนการเดินทางร่วมกันด้วยแผนที่เชิงโต้ตอบ งบประมาณ และการซิงค์แบบเรียลไทม์',
|
|
'login.title': 'เข้าสู่ระบบ',
|
|
'login.subtitle': 'ยินดีต้อนรับกลับมา',
|
|
'login.signingIn': 'กำลังลงชื่อเข้าใช้...',
|
|
'login.signIn': 'เข้าสู่ระบบ',
|
|
'login.createAdmin': 'สร้างบัญชีผู้ดูแลระบบ',
|
|
'login.createAdminHint': 'ตั้งค่าบัญชีผู้ดูแลระบบบัญชีแรกสำหรับ TREK',
|
|
'login.setNewPassword': 'ตั้งรหัสผ่านใหม่',
|
|
'login.setNewPasswordHint': 'คุณต้องเปลี่ยนรหัสผ่านก่อนดำเนินการต่อ',
|
|
'login.createAccount': 'สร้างบัญชี',
|
|
'login.createAccountHint': 'ลงทะเบียนบัญชีใหม่',
|
|
'login.creating': 'กำลังสร้าง...',
|
|
'login.noAccount': 'ยังไม่มีบัญชี?',
|
|
'login.hasAccount': 'มีบัญชีอยู่แล้ว?',
|
|
'login.register': 'ลงทะเบียน',
|
|
'login.emailPlaceholder': 'your@email.com',
|
|
'login.username': 'ชื่อผู้ใช้',
|
|
'login.oidc.registrationDisabled': 'การลงทะเบียนถูกปิดใช้งาน ติดต่อผู้ดูแลระบบของคุณ',
|
|
'login.oidc.noEmail': 'ไม่ได้รับอีเมลจากผู้ให้บริการ',
|
|
'login.oidc.tokenFailed': 'การตรวจสอบสิทธิ์ล้มเหลว',
|
|
'login.oidc.invalidState': 'เซสชันไม่ถูกต้อง โปรดลองอีกครั้ง',
|
|
'login.oidc.emailNotVerified':
|
|
'ผู้ให้บริการลงชื่อเข้าใช้ยังไม่ได้ยืนยันที่อยู่อีเมลนี้ จึงไม่สามารถเชื่อมโยงกับบัญชีที่มีอยู่ได้',
|
|
'login.oidc.emailLinkBlocked':
|
|
'ไม่สามารถเชื่อมโยงการลงชื่อเข้าใช้นี้กับบัญชีที่มีอยู่ซึ่งใช้อีเมลนี้ได้ โปรดขอให้ผู้ดูแลระบบยืนยันที่อยู่อีเมล',
|
|
'login.demoFailed': 'การเข้าสู่ระบบสาธิตล้มเหลว',
|
|
'login.oidcSignIn': 'ลงชื่อเข้าใช้ด้วย {name}',
|
|
'login.oidcOnly': 'การตรวจสอบรหัสผ่านถูกปิดใช้งาน โปรดลงชื่อเข้าใช้โดยใช้ผู้ให้บริการ SSO ของคุณ',
|
|
'login.oidcLoggedOut': 'คุณออกจากระบบแล้ว ลงชื่อเข้าใช้อีกครั้งโดยใช้ผู้ให้บริการ SSO ของคุณ',
|
|
'login.oidcRedirecting': 'กำลังพาคุณไปที่ {name}…',
|
|
'login.oidcRedirectSlow': 'ยังอยู่ที่นี่ใช่ไหม? ไปต่อที่ {name}',
|
|
'login.demoHint': 'ลองสาธิต — ไม่ต้องลงทะเบียน',
|
|
'login.mfaTitle': 'การรับรองความถูกต้องด้วยสองปัจจัย',
|
|
'login.mfaSubtitle': 'ป้อนรหัส 6 หลักจากแอปยืนยันตัวตนของคุณ',
|
|
'login.mfaCodeLabel': 'รหัสยืนยัน',
|
|
'login.mfaCodeRequired': 'ป้อนรหัสจากแอปยืนยันตัวตนของคุณ',
|
|
'login.mfaHint': 'เปิด Google Authenticator, Authy หรือแอป TOTP อื่น',
|
|
'login.mfaBack': '← กลับไปลงชื่อเข้าใช้',
|
|
'login.mfaVerify': 'ตรวจสอบ',
|
|
'login.invalidInviteLink': 'ลิงก์คำเชิญไม่ถูกต้องหรือหมดอายุ',
|
|
'login.oidcFailed': 'การเข้าสู่ระบบ OIDC ล้มเหลว',
|
|
'login.usernameRequired': 'ชื่อผู้ใช้ เป็นสิ่งจำเป็น',
|
|
'login.passwordMinLength': 'รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร',
|
|
'login.forgotPassword': 'ลืมรหัสผ่าน?',
|
|
'login.rememberMe': 'จำฉันไว้',
|
|
'login.forgotPasswordTitle': 'รีเซ็ตรหัสผ่านของคุณ',
|
|
'login.forgotPasswordBody': 'ป้อนที่อยู่อีเมลที่คุณสมัครใช้งาน หากมีบัญชีอยู่แล้ว เราจะส่งลิงก์รีเซ็ตไปให้',
|
|
'login.forgotPasswordSubmit': 'ส่งลิงก์รีเซ็ตรหัสผ่าน',
|
|
'login.forgotPasswordSentTitle': 'ตรวจสอบอีเมลของคุณ',
|
|
'login.forgotPasswordSentBody': 'หากมีบัญชีสำหรับอีเมลนั้น ลิงก์รีเซ็ตกำลังมาถึง จะหมดอายุใน 60 นาที',
|
|
'login.forgotPasswordSmtpHintOff':
|
|
'โปรดทราบ: ผู้ดูแลระบบของคุณไม่ได้กำหนดค่า SMTP ดังนั้นลิงก์รีเซ็ตจะถูกเขียนไปที่คอนโซลเซิร์ฟเวอร์แทนที่จะส่งอีเมล',
|
|
'login.backToLogin': 'กลับไปลงชื่อเข้าใช้',
|
|
'login.newPassword': 'รหัสผ่านใหม่',
|
|
'login.confirmPassword': 'ยืนยันรหัสผ่านใหม่',
|
|
'login.passwordsDontMatch': 'รหัสผ่านไม่ตรงกัน',
|
|
'login.mfaCode': 'รหัส 2FA',
|
|
'login.resetPasswordTitle': 'ตั้งรหัสผ่านใหม่',
|
|
'login.resetPasswordBody': 'เลือกรหัสผ่านที่รัดกุมที่คุณไม่เคยใช้ที่นี่มาก่อน ขั้นต่ำ 8 ตัวอักษร',
|
|
'login.resetPasswordMfaBody': 'ป้อนรหัส 2FA ของคุณหรือรหัสสำรองเพื่อทำการรีเซ็ตให้เสร็จสิ้น',
|
|
'login.resetPasswordSubmit': 'รีเซ็ตรหัสผ่าน',
|
|
'login.resetPasswordVerify': 'ตรวจสอบและรีเซ็ต',
|
|
'login.resetPasswordSuccessTitle': 'อัปเดตรหัสผ่านแล้ว',
|
|
'login.resetPasswordSuccessBody': 'ตอนนี้คุณสามารถลงชื่อเข้าใช้ด้วยรหัสผ่านใหม่ของคุณได้แล้ว',
|
|
'login.resetPasswordInvalidLink': 'ลิงก์รีเซ็ตไม่ถูกต้อง',
|
|
'login.resetPasswordInvalidLinkBody': 'ลิงก์นี้หายไปหรือใช้งานไม่ได้ โปรดขอลิงก์ใหม่เพื่อดำเนินการต่อ',
|
|
'login.resetPasswordFailed': 'การรีเซ็ตล้มเหลว ลิงก์อาจหมดอายุแล้ว',
|
|
'login.passkey.signIn': 'เข้าสู่ระบบด้วยพาสคีย์',
|
|
'login.passkey.failed': 'การเข้าสู่ระบบด้วยพาสคีย์ล้มเหลว โปรดลองอีกครั้ง',
|
|
'login.insecureCookie.title': 'การเข้าสู่ระบบจะไม่ติดบน HTTP',
|
|
'login.insecureCookie.body':
|
|
'คุณกำลังเชื่อมต่อผ่าน HTTP ธรรมดา ดังนั้นเบราว์เซอร์ของคุณจึงทิ้งคุกกี้เซสชันที่ปลอดภัยของ TREK คำขอถัดไปล้มเหลวด้วย "ต้องใช้โทเค็นการเข้าถึง" แก้ไข: ใช้ HTTPS หรือสำหรับชุดโฮมแล็บ COOKIE_SECURE=false',
|
|
'login.insecureCookie.link': 'เปิดคู่มือการแก้ไขปัญหา',
|
|
};
|
|
export default login;
|