Changeset 2248cd2 in Klonkt for src/config
- Timestamp:
- 06/16/2026 10:28:54 PM (3 months ago)
- Branches:
- main
- Children:
- e2a8e31
- Parents:
- 221a209
- File:
-
- 1 edited
-
src/config/google.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/config/google.js
r221a209 r2248cd2 1 1 // Google OAuth2 voor LUISTERAARS (reageren). Per-instance: de self-hoster zet 2 // z'n EIGEN Google-client in .env. Zo hangt elke site aan z'n eigen Google Cloud3 // project— geen centrale afhankelijkheid, geen gedeelde aansprakelijkheid.2 // z'n EIGEN Google-client. Zo hangt elke site aan z'n eigen Google Cloud project 3 // — geen centrale afhankelijkheid, geen gedeelde aansprakelijkheid. 4 4 // 5 // Optioneel: staat dit niet ingesteld, dan is er simpelweg geen "Login met6 // Google"-knop en blijft de rest van de site werken. Google-login geeft NOOIT7 // beheerrechten — beheer gaat via het wachtwoord-account.5 // Config-bron (in deze volgorde): app_settings (ingesteld via Beheer → Instellingen), 6 // anders de env-vars. Niet ingesteld → geen "Login met Google"-knop; de rest van 7 // de site werkt door. Google-login geeft NOOIT beheerrechten. 8 8 // 9 // Config via env: 10 // GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET 11 // GOOGLE_REDIRECT_URI = https://<dit-domein>/auth/google/callback 9 // De redirect-URI wordt afgeleid van PUBLIC_BASE_URL (<base>/auth/google/callback), 10 // of expliciet via GOOGLE_REDIRECT_URI. Die exacte URL moet in Google Cloud staan. 12 11 13 const CLIENT_ID = process.env.GOOGLE_CLIENT_ID || ''; 14 const CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET || ''; 15 const REDIRECT_URI = process.env.GOOGLE_REDIRECT_URI || ''; 12 import { getSetting } from '../services/SettingsService.js'; 16 13 17 14 const AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth'; … … 19 16 const USERINFO_URL = 'https://openidconnect.googleapis.com/v1/userinfo'; 20 17 18 // Dynamisch lezen (UI-wijziging werkt zonder herstart). app_settings wint, env = fallback. 19 function clientId() { 20 return getSetting('google_client_id', '') || process.env.GOOGLE_CLIENT_ID || ''; 21 } 22 function clientSecret() { 23 return getSetting('google_client_secret', '') || process.env.GOOGLE_CLIENT_SECRET || ''; 24 } 25 export function redirectUri() { 26 if (process.env.GOOGLE_REDIRECT_URI) return process.env.GOOGLE_REDIRECT_URI; 27 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 28 return base ? `${base}/auth/google/callback` : ''; 29 } 30 31 export function currentClientId() { return clientId(); } // niet-geheim, voor het formulier 32 export function clientSecretSet() { return !!clientSecret(); } 21 33 export function googleConfigured() { 22 return !!( CLIENT_ID && CLIENT_SECRET && REDIRECT_URI);34 return !!(clientId() && clientSecret() && redirectUri()); 23 35 } 24 36 25 37 export function authorizeUrl(state) { 26 38 const p = new URLSearchParams({ 27 client_id: CLIENT_ID,28 redirect_uri: REDIRECT_URI,39 client_id: clientId(), 40 redirect_uri: redirectUri(), 29 41 response_type: 'code', 30 42 scope: 'openid email profile', … … 39 51 const body = new URLSearchParams({ 40 52 code, 41 client_id: CLIENT_ID,42 client_secret: CLIENT_SECRET,43 redirect_uri: REDIRECT_URI,53 client_id: clientId(), 54 client_secret: clientSecret(), 55 redirect_uri: redirectUri(), 44 56 grant_type: 'authorization_code', 45 57 });
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)