Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const firebaseAuthMiddleware = async function (request, reply) {
- const authHeader = request.headers['authorization'];
- // HEADER NOT PROVIDED
- if (!authHeader)
- return notAuthorized(reply);
- const [protocol, token] = authHeader.split(' ');
- // TOKEN NOT PROVIDED
- if (!token)
- return notAuthorized(reply);
- const started = Date.now();
- try {
- const decodedToken = await firebaseAdminSDK.auth().verifyIdToken(token);
- const firebaseUser = await firebaseAdminSDK.auth().getUser(decodedToken.uid);
- request.firebaseUser = firebaseUser;
- request.authTime = Date.now() - started;
- return;
- } catch (error) {
- if (error.code === FIREBASE_TOKEN_EXPIRED) {
- reply.code(440);
- reply.send({ code: errorTypes.SESSION_EXPIRED });
- return;
- }
- reply.code(401);
- reply.send({ code: FIREBASE_AUTH_ERROR, error });
- return;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement