Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase Admin SDK - Current Logged In User - Nodejs

How do i get currentUser in firebase admin SDK. In client SDK we can use

onAuthStateChanged() or firebase.auth().currentUser()

In NodeJs Server.js file firebase admin SDK onAuthStateChanged() Do not work, what should work here?

Basically i want only logged in users to access my innerPages so i am using express,nodejs app.get method to create routes.

app.get('/', authenticationRequired ,function(req,res){
    res.sendFile(path.join(__dirname+'/index.html'));
});

And trying to write authenticationRequired method (returns false or true depending on if user is logged in).

like image 908
Noman Ali Avatar asked Nov 29 '22 22:11

Noman Ali


1 Answers

The Firebase Admin SDK does not inherently know what user is using your Express web app. You will need to implement code for this. If you're already using Firebase Authentication in the web app, this takes these steps:

  1. Retrieve the user's ID token on the client

    You can get a user's ID token by using the firebase.auth().currentUser.getIdToken() method.

  2. Pass this token from the client to the server

  3. Verify the token on the server

    The user ID token can be verified using the admin.auth().verifyIdToken(idToken) method. On success it will return a promise with the decodedToken, otherwise it will return a rejected promise.

like image 82
Frank van Puffelen Avatar answered Dec 04 '22 13:12

Frank van Puffelen