gpt4 book ai didi

ruby - 解码 Auth0 token 时遇到问题

转载 作者:行者123 更新时间:2023-12-02 03:09:18 24 4
gpt4 key购买 nike

当我在 Angular 应用程序中通过 Lock 进行身份验证时,我有一个 Auth0 提供给我的 JWT。

我将此 token 复制并粘贴到名为 token 的 Ruby 变量中。

这是我尝试解码 token 时在 Rails 控制台上得到的内容:

> JWT.decode token, nil, false
=> [{"iss"=>"https://benfranklinlabs.auth0.com/", "sub"=>"auth0|58306f91c08814e01015f434", "aud"=>"8NWWMzcPNXEvxogqwRar18hJuYAvsrG0", "exp"=>1479766470, "iat"=>1479730470}, {"typ"=>"JWT", "alg"=>"HS256"}]

这很好,只是我认为解码过程应该需要我的 Auth0 客户端的客户端 key 。我正在使用 Knock使用我的 Rails 应用程序尝试解码 token like this :

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

我想这是有道理的。如果我可以在不使用 key 的情况下很好地解码 token ,那么我想我的 token 一定不是在考虑了我的 Auth0 Client Secret 的情况下创建的。不过我不知道这是事实。

所以我的问题是:Knock 似乎需要使用我的 Auth0 Client Secret 解码 token ,但使用我的 Client Secret 解码 token 不起作用。我怎样才能让它发挥作用?

编辑:

Here's my token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2JlbmZyYW5rbGlubGFicy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NTgzMDZmOTFjMDg4MTRlMDEwMTVmNDM0IiwiYXVkIjoiajNKdHpjYnNpTUkyR0JkRnZGb3FFTjM4cUtTVmI2Q0UiLCJleHAiOjE0Nzk3NzE4ODMsImlhdCI6MTQ3OTczNTg4M30.MuUbdC7TLBcteKCry-sioeZVStI9TZ6TdsP5WG_6K08

这是我的客户端 ID:j3JtzcbsiMI2GBdFvFoqEN38qKSVb6CE

这是我的客户 secret :development_secret

最佳答案

Auth0 最近 (不完全正确,接下来描述的更改仅在 2016 年 12 月 6 日生效)改变了客户端应用程序 secret 的生成和编码方式。最初,客户端密码将生成并显示为 Base64url 编码字符串,这意味着您必须在使用前对其进行解码。

对于新创建的应用程序或显式更新为不再使用 Base64url 编码模式的应用程序,Auth0 仪表板上显示的客户端密码不再使用 Base64 编码,因此您不应在使用前尝试对其进行解码。


使用提供的样本 token 和 secret ,如果您遵循以下步骤:

  1. 访问jwt.io
  2. 粘贴你的 token
  3. 更新验证签名部分以包含您的 development_secret 并选中 secret 是 base64 编码的选项

则签名验证正确。这意味着 token 生成是正确的,问题在于我们如何在 Ruby 中验证它。您需要检查用于验证的 Rails API 是否采用任何编码并以预期格式传递密码。


来自 OP 的注释:最终为我修复的是手动对字符串进行 base64 编码(JWT.base64url_encode 'my_arbitrary_string')并将结果值粘贴到我的 Auth0 设置中的 Client Secret .

关于ruby - 解码 Auth0 token 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40721209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com