UNPKG

authenzify

Version:

server to manage authentication authorization of users and more

43 lines (36 loc) 955 B
import { OAuth2Client } from 'google-auth-library' const googleAuthClient = new OAuth2Client() export const googleApisProvider = ({ GOOGLE_CLIENT_ID }) => ({ async verifyClientToken({ token }) { const ticket = await googleAuthClient.verifyIdToken({ idToken: token, audience: GOOGLE_CLIENT_ID, }) const payload = ticket.getPayload() const { email, email_verified: userVerified, exp: tokenExpiration, family_name: lastName, given_name: firstName, aud: clientId, picture: avatarUrl, sub: userId, } = payload const clientIds = [].concat(clientId) if (!clientIds.find((ci) => GOOGLE_CLIENT_ID.includes(ci))) { throw new Error(`Invalid clientId: ${clientIds} `) } return { email, userVerified, tokenExpiration, lastName, firstName, clientIds, jti: payload['jti'], avatarUrl, userId, } }, })