fix(auth): Google Sign-In audience mismatch + remove per-user accent color
Root cause of "Google authentication failed": appsettings.Development.json had Auth:GoogleClientId set to the literal placeholder "CHANGE_ME_GOOGLE_CLIENT_ID" while the frontend's .env.development had a real (already-public, already-committed) client ID -- every Google ID token's audience check failed against the backend's placeholder. Fixed by setting the same real client ID on both sides (a client ID is a public identifier, not a secret, safe to commit -- unlike a client secret). Also enabled Auth:AllowRegistration in dev so the existing Google-first self-serve-signup path (auto-create on unmatched verified email, auto-link on matching verified email -- built during Wave 7) is actually exercisable locally. Wired the previously-missing Auth__MicrosoftClientId / NEXT_PUBLIC_MICROSOFT_CLIENT_ID into docker-compose.yml/.env.example (distinct from the existing MICROSOFT_CLIENT_ID used for Outlook mail linking) -- Microsoft sign-in was never deployable, a leftover gap from when it was built. Fixed a stale env-var name in the Microsoft setup hint copy (still said REACT_APP_*, predates the Next.js migration). Removed the per-user accent color picker entirely: it was purely client-side (localStorage + theme.ts), never touched the backend/DB. theme.ts now hardcodes a single ACCENT constant; themePrefs.ts drops get/set/clearAccentColor; App.tsx and SettingsView.tsx drop the accentColor prop threading. Dead accent-related i18n keys removed from both locales. Consolidated Settings' "Account" tab (duplicated GoogleAuthCard, which already lives on the Profile page) into Profile: moved AuthStatusCard and EmailProviderConnections there alongside the existing Google/ Microsoft auth cards, so identity/account-linking lives in one place. Settings drops from 5 tabs to 4 and its General tab uses a consistent SectionCard layout instead of ad-hoc per-card styling. Verified: dotnet build/test (177/177) and npm build/test (57/57) both green; confirmed live against a running dev server that /auth/config now reports googleEnabled with the corrected client ID, Settings has no accent controls, and Profile shows the consolidated auth section.
This commit is contained in:
@@ -128,22 +128,17 @@ export const translations = {
|
||||
settingsTabGeneral: "General",
|
||||
settingsTabFollowUps: "Follow-ups",
|
||||
settingsTabNotifications: "Notifications",
|
||||
settingsTabAccount: "Account",
|
||||
settingsTabBackup: "Backup",
|
||||
settingsAppearance: "Appearance",
|
||||
settingsTheme: "Theme",
|
||||
settingsThemeSystem: "System",
|
||||
settingsThemeDark: "Dark",
|
||||
settingsThemeLight: "Light",
|
||||
settingsAccent: "Accent",
|
||||
settingsReset: "Reset",
|
||||
settingsSavedPerUser: "Saved per user on this browser.",
|
||||
settingsLanguageTitle: "Language and localization",
|
||||
settingsLanguageBody: "Set your preferred app language. This is also the language used when deciding whether imported job descriptions should show translated text.",
|
||||
settingsPreferredLanguage: "Preferred language",
|
||||
settingsEnglish: "English",
|
||||
settingsNorwegian: "Norwegian Bokmål",
|
||||
settingsMorePagesSoon: "More pages will be moved onto this translation system as the UI cleanup continues.",
|
||||
settingsJobs: "Jobs",
|
||||
settingsPagination: "Pagination",
|
||||
settingsRowsPerPage: "Rows per page",
|
||||
@@ -167,8 +162,6 @@ export const translations = {
|
||||
settingsNotificationsFollowUpReminders: "Email reminders for follow-ups",
|
||||
settingsNotificationsGhostedJobs: "Email alerts for ghosted jobs",
|
||||
settingsNotificationsInAppReminders: "Highlight reminders in the app",
|
||||
settingsAccentHelp: "Drag in the color picker, then save when it looks right.",
|
||||
settingsAccentInvalid: "Use a full hex color like #15803D.",
|
||||
settingsCheckSystemStatus: "Check system status",
|
||||
profileTitle: "Profile",
|
||||
profileHeadlinePlaceholder: "Add a short headline to personalize your account view.",
|
||||
@@ -629,7 +622,7 @@ export const translations = {
|
||||
googleUnlinked: "Google account unlinked.",
|
||||
googleUnlinkFailed: "Failed to unlink Google account.",
|
||||
microsoftAccountTitle: "Microsoft account",
|
||||
microsoftSetupHint: "Set `REACT_APP_MICROSOFT_CLIENT_ID` in your UI environment to enable Microsoft sign-in and account linking.",
|
||||
microsoftSetupHint: "Set `NEXT_PUBLIC_MICROSOFT_CLIENT_ID` in your UI environment to enable Microsoft sign-in and account linking.",
|
||||
microsoftLinked: "Linked",
|
||||
microsoftAvailableToLink: "Available to link",
|
||||
microsoftLinkedDate: "Linked {date}",
|
||||
@@ -1093,22 +1086,17 @@ export const translations = {
|
||||
settingsTabGeneral: "Generelt",
|
||||
settingsTabFollowUps: "Oppfølging",
|
||||
settingsTabNotifications: "Varsler",
|
||||
settingsTabAccount: "Konto",
|
||||
settingsTabBackup: "Sikkerhetskopi",
|
||||
settingsAppearance: "Utseende",
|
||||
settingsTheme: "Tema",
|
||||
settingsThemeSystem: "System",
|
||||
settingsThemeDark: "Mørkt",
|
||||
settingsThemeLight: "Lyst",
|
||||
settingsAccent: "Aksent",
|
||||
settingsReset: "Tilbakestill",
|
||||
settingsSavedPerUser: "Lagres per bruker i denne nettleseren.",
|
||||
settingsLanguageTitle: "Språk og lokalisering",
|
||||
settingsLanguageBody: "Velg foretrukket språk i appen. Dette brukes også når appen avgjør om importerte stillingsbeskrivelser skal vise oversatt tekst.",
|
||||
settingsPreferredLanguage: "Foretrukket språk",
|
||||
settingsEnglish: "Engelsk",
|
||||
settingsNorwegian: "Norsk Bokmål",
|
||||
settingsMorePagesSoon: "Flere sider flyttes til dette oversettelsessystemet etter hvert som UI-oppryddingen fortsetter.",
|
||||
settingsJobs: "Jobber",
|
||||
settingsPagination: "Paginering",
|
||||
settingsRowsPerPage: "Rader per side",
|
||||
@@ -1132,8 +1120,6 @@ export const translations = {
|
||||
settingsNotificationsFollowUpReminders: "E-postpåminnelser for oppfølginger",
|
||||
settingsNotificationsGhostedJobs: "E-postvarsler for ghostede jobber",
|
||||
settingsNotificationsInAppReminders: "Fremhev påminnelser i appen",
|
||||
settingsAccentHelp: "Dra i fargevelgeren, og lagre når den ser riktig ut.",
|
||||
settingsAccentInvalid: "Bruk en full hex-farge som #15803D.",
|
||||
settingsCheckSystemStatus: "Sjekk systemstatus",
|
||||
profileTitle: "Profil",
|
||||
profileHeadlinePlaceholder: "Legg til en kort overskrift for å gjøre kontovisningen mer personlig.",
|
||||
@@ -1594,7 +1580,7 @@ export const translations = {
|
||||
googleUnlinked: "Google-konto koblet fra.",
|
||||
googleUnlinkFailed: "Kunne ikke koble fra Google-kontoen.",
|
||||
microsoftAccountTitle: "Microsoft-konto",
|
||||
microsoftSetupHint: "Sett `REACT_APP_MICROSOFT_CLIENT_ID` i UI-miljøet ditt for å aktivere Microsoft-innlogging og kontokobling.",
|
||||
microsoftSetupHint: "Sett `NEXT_PUBLIC_MICROSOFT_CLIENT_ID` i UI-miljøet ditt for å aktivere Microsoft-innlogging og kontokobling.",
|
||||
microsoftLinked: "Koblet",
|
||||
microsoftAvailableToLink: "Tilgjengelig for kobling",
|
||||
microsoftLinkedDate: "Koblet {date}",
|
||||
|
||||
Reference in New Issue
Block a user