Changeset b919a67 in Klonkt for src/routes
- Timestamp:
- 06/19/2026 08:00:37 AM (3 months ago)
- Branches:
- main
- Children:
- 2900f1d
- Parents:
- 70679063
- File:
-
- 1 edited
-
src/routes/auth.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/auth.js
r70679063 rb919a67 236 236 router.get('/google', (req, res) => { 237 237 if (!fanLoginReady()) { 238 return res.redirect('/auth/login? error=' + encodeURIComponent('Inloggen met Google is op deze site niet beschikbaar.'));238 return res.redirect('/auth/login?gerr=unavailable'); 239 239 } 240 240 const state = crypto.randomBytes(16).toString('hex'); … … 256 256 257 257 router.get('/google/callback', async (req, res) => { 258 const fail = ( msg) => res.redirect('/auth/login?error=' + encodeURIComponent(msg));259 if (!fanLoginReady()) return fail(' Inloggen met Google is op deze site niet beschikbaar.');258 const fail = (code) => res.redirect('/auth/login?gerr=' + code); 259 if (!fanLoginReady()) return fail('unavailable'); 260 260 try { 261 261 const { code, state } = req.query; 262 if (!code || !state || state !== req.session.oauthState) return fail(' Login afgebroken of ongeldige sessie.');262 if (!code || !state || state !== req.session.oauthState) return fail('session'); 263 263 const next = safeNext(req.session.oauthNext) || ''; 264 264 delete req.session.oauthState; … … 268 268 const info = await fetchUserinfo(tok.access_token); 269 269 const email = (info.email || '').trim().toLowerCase(); 270 if (!email || info.email_verified === false) return fail(' Geen geverifieerd Google-e-mailadres.');270 if (!email || info.email_verified === false) return fail('email'); 271 271 272 272 let user = db.prepare('SELECT * FROM users WHERE LOWER(email) = ?').get(email); … … 277 277 if (user.role === 'god' || user.role === 'admin') { 278 278 // Eigen, duidelijke uitleg-pagina (zie auth-login.ejs) i.p.v. een kale melding. 279 return res.redirect('/auth/login?gerr=admin');279 return fail('admin'); 280 280 } 281 281 // Bestaande luisteraar: koppel google_sub/avatar als die ontbreken; weiger 282 282 // als al aan een ander Google-account gekoppeld. 283 283 if (user.google_sub && info.sub && user.google_sub !== info.sub) { 284 return fail(' Dit e-mailadres is al aan een ander Google-account gekoppeld.');284 return fail('linked'); 285 285 } 286 286 db.prepare(` … … 307 307 } catch (e) { 308 308 console.error('[auth/google/callback]', e.message); 309 fail(' Google-login mislukt. Probeer opnieuw.');309 fail('failed'); 310 310 } 311 311 });
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)