0

C++でthis third party libraryを使用してサーバー側でFirebaseのトークンを確認したいとします。私は、公開鍵と秘密鍵を提供する必要がトークンの検証のための 、Firebase says thatFirebaseのトークン検証での誤解

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

しかし、私は開いた時に記載されている公開鍵の1つに対応する必要がありますが、私はいくつかの誤解を持っていますリンク、私は私がトークン検証のために渡すべき公開鍵と秘密鍵を見つけることができませんでした。

トークン検証用の公開鍵と秘密鍵を取得するにはどうすればよいですか?

答えて

1

Firebase IDトークンとjwtを一般的に検証するには、公開鍵が必要です。このリンクには、公開鍵jsonオブジェクトが含まれています(publicKeysObjectとしましょう)。あなたはJWTヘッダに「子供」のフィールドを取得し、次のように公開鍵を取得する:あなたの答えのためのhttps://github.com/firebase/firebase-admin-node/blob/master/src/auth/token-generator.ts

+0

ありがとう:publicKeysObjectは[kidFromJWT]

チェックFirebase管理者は、詳細については、SDKオープンソース実装をNode.jsの遅れて申し訳ありません。わかりましたが、秘密鍵として渡す必要があるものは2つあります。[検証者は秘密鍵が必要です](https://github.com/pokowaka/jwt-cpp#validating-tokens)そして、私たちが 'publicKeysObject [kidFromJWT]'から得る公開鍵で何をすべきか?私はこの流れを理解していないことを意味します。私たちは子供と一致する公開鍵を使用する必要があります。もし私たちが子供 "99bf5a385a7babdab5 ..."を持っていれば、対応する公開鍵を使うべきですが、それを比較する必要があるのでしょうか?あなたの答えにいくつかの説明を加えてください。 –

+1

Gihubリポジトリには、フローの仕組みが詳しく説明されています。秘密鍵はプライベート鍵です。彼らはFirebase Authサーバを出るつもりはありません。 'publicKeysObject [kidFromJWT]'の値はIDトークンを検証するための公開鍵になります。 "----- BEGIN CERTIFICATE ----- ... END CERTIFICATE ----- \ n"署名を検証するには公開鍵とIDトークン文字列が必要です。おそらく、このライブラリは参考になります:https://github.com/madf/jwtxx – bojeil

+0

ありがとう、私は 'jwtxx'が私のためにより有用であることがわかりました。また、Firebaseに関する別の関連問題がありましたので、[確認してください](https://stackoverflow.com/questions/45426837/get-users-phone-number-from-c-using-firebase)をクリックしてください。 –

関連する問題