3081d99355
Wave 7. Mirrors the existing Google ID-token-exchange pattern (Program.cs smart-scheme dispatch, JWT bearer scheme, AuthController exchange/link/ unlink endpoints, ApplicationUser fields, reconciler columns) for Microsoft Entra ID + personal accounts via the multi-tenant "common" endpoint. Google/Microsoft sign-in previously only worked for accounts already linked to an existing local user -- there was no way to actually sign up via OAuth. Both exchange endpoints now create a new user when no match is found and Auth:AllowRegistration is true, same gate as email/password registration. Frontend: new MicrosoftAuthCard (MSAL popup flow -- Microsoft has no vanilla-JS equivalent to Google's Identity Services script) wired into the login page's provider tabs and the profile page's account-linking section. REACT_APP_MICROSOFT_CLIENT_ID env var, Auth:MicrosoftClientId config gate on the backend.
47 lines
1.1 KiB
JSON
47 lines
1.1 KiB
JSON
{
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning"
|
|
}
|
|
},
|
|
"Cors": {
|
|
"Origins": [
|
|
"http://localhost:3000",
|
|
"http://localhost:3001",
|
|
"https://jobs.cesnimda.uk"
|
|
]
|
|
},
|
|
"Exports": {
|
|
"DailyEnabled": true,
|
|
"DailyFolder": "exports",
|
|
"DailyHourLocal": 2
|
|
},
|
|
"Auth": {
|
|
"Require": true,
|
|
"AllowRegistration": false,
|
|
"JwtKey": "CHANGE_ME_DEV_ONLY_LONG_RANDOM_SECRET",
|
|
"JwtIssuer": "JobTrackerApi",
|
|
"JwtAudience": "job-tracker-ui",
|
|
"JwtExpiresMinutes": 720,
|
|
"AdminEmail": "admin@example.com",
|
|
"AdminPassword": "CHANGE_ME_STRONG_DEV_PASSWORD",
|
|
"GoogleClientId": "CHANGE_ME_GOOGLE_CLIENT_ID",
|
|
"MicrosoftClientId": "CHANGE_ME_MICROSOFT_CLIENT_ID"
|
|
},
|
|
"App": {
|
|
"PublicBaseUrl": "https://jobs.cesnimda.uk"
|
|
},
|
|
"Email": {
|
|
"Enabled": false,
|
|
"SmtpHost": "smtp.gmail.com",
|
|
"SmtpPort": 587,
|
|
"SmtpUser": "CHANGE_ME_GMAIL_ADDRESS",
|
|
"SmtpPassword": "CHANGE_ME_GOOGLE_APP_PASSWORD",
|
|
"From": "CHANGE_ME_GMAIL_ADDRESS",
|
|
"FromName": "Jobbjakt",
|
|
"SmtpEnableSsl": true,
|
|
"SmtpTimeoutMs": 15000
|
|
}
|
|
}
|