2016-04-08 9 views
1

FirebaseとFacebook認証を使用しています。 Authオブジェクトには、facebookトークンとFirebase Authトークンの両方が含まれています。FBトークンを使用して自分自身のバックエンドサービスを認証し、トークンをFBからサーバーにポストしないで、検証します。 Firebaseの秘密を使ってトークンが署名されることを期待していましたが、そうではありません。Firebase Appからサーバーに送信されるトークンを検証できる方法があるかどうかは疑問です。 私はこの疑惑をサポートするためのドキュメントを見つけることができないようなネストされた署名ビットがあるかもしれないと思う。Facebookのログインで生成されたFirebase認証トークンを確認するために使用できるキー

これに近づくためのヒントをいただければ幸いです。

NB - FB秘密を使用して自分自身のトークンを生成することができます。これらのトークンを使用して自分のサーバーからのログインを許可し、引き続き認証トークンを使用して自分のIDを確認しますサーバーとFB。この問題は、サードパーティの認証トークン(Facebookログインなど)を使用している場合にのみ発生します。

答えて

0

回答はanother Stack Overflow questionです。

import urllib, json 
from jose import jwt 

idtoken = "<id token passed to server from firebase auth>" 

target_audience = "<firebase app id>" 

certificate_url = 'https://www.googleapis.com/robot/v1/metadata/x509/[email protected]' 

response = urllib.urlopen(certificate_url) 
certs = response.read() 
certs = json.loads(certs) 

#will throw error if not valid 
user = jwt.decode(idtoken, certs, algorithms='RS256', audience=target_audience) 
print user 

secret」(jwt.decodeに渡される)はhttps://www.googleapis.com/robot/v1/metadata/x509/[email protected]

+0

恐ろしいから得られたキーのJSONの辞書れる - リンク及びコードのおかげで - 場合裏面端子に見直します –

関連する問題