feat(identity): retain verified OIDC subject in web session

This commit is contained in:
Chris Christiansen 2026-09-19 18:05:59 +00:00
parent 8aa533eecc
commit 25b3deb19b

View File

@ -57,7 +57,10 @@ app.get('/auth/callback', async (req, res, next) => {
let { tokens } = await oauth.getToken(req.query.code); let { tokens } = await oauth.getToken(req.query.code);
let p = (await oauth.verifyIdToken({ idToken: tokens.id_token, audience: process.env.GOOGLE_CLIENT_ID })).getPayload(); let p = (await oauth.verifyIdToken({ idToken: tokens.id_token, audience: process.env.GOOGLE_CLIENT_ID })).getPayload();
if (!p?.email || !emails.has(p.email)) return res.status(403).send('Not authorised'); if (!p?.email || !emails.has(p.email)) return res.status(403).send('Not authorised');
req.session.user = { email: p.email, name: p.name || p.email }; if (typeof p.sub !== "string" || !p.sub.trim()) {
return next(new Error('Verified Google ID token missing subject'));
}
req.session.user = { email: p.email, name: p.name || p.email, sub: p.sub };
res.redirect('/'); res.redirect('/');
} catch (e) { } catch (e) {
next(e); next(e);