| 12345678910111213141516171819202122232425 |
- import { Injectable } from '@nestjs/common';
- import { PassportStrategy } from '@nestjs/passport';
- import { Strategy, ExtractJwt } from 'passport-firebase-jwt';
- import * as admin from 'firebase-admin';
- @Injectable()
- export class FirebaseStrategy extends PassportStrategy(Strategy, 'firebase') {
- constructor() {
- super({
- jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
- });
- admin.initializeApp({
- credential: admin.credential.cert({
- projectId: process.env.FIREBASE_PROJECT_ID,
- clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
- privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\n/g, '\n'),
- }),
- });
- }
- async validate(token: string) {
- const decodedToken = await admin.auth().verifyIdToken(token, true);
- return decodedToken;
- }
- }
|