2017-07-20 8 views
1

firebase admin SDKでcurrentUserを取得する方法を教えてください。クライアントSDKでは、私たちはここで働いすべきか、動作しないのですか?onAuthStateChanged NodeJs Server.jsファイルfirebase管理SDK ()Firebase Admin SDK - 現在ログインしているユーザ - Nodejs

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

を使用することができますか

基本的には、ログインしたユーザーだけが私のinnerPagesにアクセスしたいので、エクスプレス、nodejs app.getメソッドを使用してルートを作成しています。

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

そしてauthenticationRequiredメソッドを記述しようとしているが(ユーザーがログインしている場合に応じて、falseまたはtrueを返します)。

+0

https://firebase.google.com/docs/auth/admin/verify-id-tokens –

+0

)。入手トークン()' 'このエラーが出てきます未定義の ' –

+0

' firebase.auth()。currentUser.getToken' –

答えて

6

Firebase Admin SDKは、ユーザーがあなたのExpress Webアプリケーションを使用していることを本質的に知らない。このためのコードを実装する必要があります。すでにウェブアプリでFirebase認証を使用している場合、これは、これらの手順を実行します。

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

    あなたはfirebase.auth().currentUser.getToken()メソッドを使用してユーザーのIDトークンを取得することができます。

  2. は、ユーザーIDトークンがadmin.auth().verifyIdToken(idToken)メソッドを使用して検証することができ、クライアントからサーバに

  3. Verify the token on the server

    をこのトークンを渡します。成功すると、decodedTokenと約束が返されます。そうでなければ、拒否された約束を返します。私は(firebase.auth `によって入手トークンに試してみました

+0

のプロパティ 'getToken'を読み込めません。このアプローチは意味があります。 firebase.jsonファイルの書き換えを使用してクラウド機能から直接コンテンツを提供する場合のアドバイスはありますか?つまり私は上記のことを行うことができる静的なページをユーザーに表示しません。 – James

関連する問題