39 lines
1.0 KiB
TypeScript
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,
|
|
});
|
|
}
|
|
} |