Files
nirvana/pages/api/auth/validateToken.tsx
T

39 lines
1.0 KiB
TypeScript

import fbAdm, { credential } from 'firebase-admin';
import firebaseAdmin, { App } from 'firebase-admin/app';
import { NextApiRequest, NextApiResponse } from 'next';
import serviceAccount from '../../../nirvana-for-business-firebase-adminsdk'
const adminApp = firebaseAdmin.initializeApp({
credential: credential.cert({
privateKey: serviceAccount.private_key,
clientEmail: serviceAccount.client_email,
projectId: serviceAccount.project_id,
})
});
export default async function(req: NextApiRequest, res: NextApiResponse) {
console.log('Validating token...');
try {
const { token } = JSON.parse(req.headers.authorization || '{}');
if (!token) {
return res.status(403).send({
errorCode: 403,
message: 'Auth token missing.'
});
}
const verifiedToken = fbAdm.auth().verifyIdToken(token)
return res.status(200).send(verifiedToken);
} catch (err) {
return res.status(err.code).send({
errorCode: err.code,
message: err.message,
});
}
}