角度アプリケーションでLockを使って認証したときAuth0が提供したJWTがあります。Auth0トークンのデコードに問題がある
このトークンをコピーしてtoken
という名前のRuby変数に貼り付けました。
> JWT.decode token, nil, false
=> [{"iss"=>"https://benfranklinlabs.auth0.com/", "sub"=>"auth0|58306f91c08814e01015f434", "aud"=>"8NWWMzcPNXEvxogqwRar18hJuYAvsrG0", "exp"=>1479766470, "iat"=>1479730470}, {"typ"=>"JWT", "alg"=>"HS256"}]
これは結構です、私は、復号処理が私のAuth0クライアントのクライアントシークレットを必要とすることになっていたと思った以外、:私はトークンを解読しようとすると、
は、ここで私はRailsのコンソール上で何を得るのです。私はトークンlike thisを解読しようとする私のRailsアプリケーションでKnockを使用しています:
JWT.decode token, decode_key, true, options.merge(verify_options)
そしてdecode_key
はこれに等しいです:
JWT.base64url_decode Rails.application.secrets.auth0_client_secret
そして、この試みは失敗します。次のエラーが表示されます。
*** JWT::VerificationError Exception: Signature verification raised
これは意味があると思います。キーを使わずにトークンをデコードすることができれば、Auth0 Client Secretを組み込んだトークンを作成してはいけないと思いますが、実際にはこれは分かりません。
私の質問はこれです:KnockはAuth0 Client Secretを使ってトークンを復号する必要があるようですが、Client Secretを使ってトークンを復号することはできません。どうすればそれを稼働させることができますか?
編集:
はここに私のトークンです:j3JtzcbsiMI2GBdFvFoqEN38qKSVb6CE
ここに私のクライアントは秘密です:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2JlbmZyYW5rbGlubGFicy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NTgzMDZmOTFjMDg4MTRlMDEwMTVmNDM0IiwiYXVkIjoiajNKdHpjYnNpTUkyR0JkRnZGb3FFTjM4cUtTVmI2Q0UiLCJleHAiOjE0Nzk3NzE4ODMsImlhdCI6MTQ3OTczNTg4M30.MuUbdC7TLBcteKCry-sioeZVStI9TZ6TdsP5WG_6K08
はここに私のクライアントIDですdevelopment_secret
ああ、私は明確化する必要があります。私は 'JWT.decode token、decode_key、true'の' true'が 'verify'を意味することを知りました。その引数を 'false'に設定すると、キーを使用するかどうかにかかわらず動作します。その引数を 'true'に設定すると、キーを使うかどうかにかかわらず失敗します。 –