【问题标题】:Doorkeeper jwt with RS encryption带 RS 加密的 Doorkeeper jwt
【发布时间】:2019-05-10 09:39:56
【问题描述】:

我正在使用 Doorkeeper 进行授权,并使用 JWT 在我的应用程序中生成访问令牌。并启用下面的选项,如

  • secret_key_path 到我的 private.pem 文件的位置
  • 加密方法是 RS256
  • use_application_secret 错误

使用 Doodkeeper::JWT 配置块。我面临的问题是一旦请求在后端生成令牌,它就会提示输入 PEM 密码:

并且没有得到任何响应,因为一旦您提供了短语,它就会等待输入密码短语,然后您将获得访问令牌作为响应。

注意:我生成用于加密的 private.pem 文件并在 JWT 中使用 private.pem 生成 access_token。

【问题讨论】:

  • 您可以将passphrase 删除到您的文件中,或者您可以使用secret_key 并从ENV 加载它。
  • @UdAY 我添加了 secret_key 但它仍然提示我们如何删除密码?
  • 在添加密钥后评论secret_key_path,您可以查看here关于删除密码的信息
  • 我通过添加如下猴子补丁解决了:# secret_key_file_open {|f| OpenSSL::PKey::RSA.new(f)} 模块 JWT 类

标签: ruby-on-rails ruby doorkeeper


【解决方案1】:

问题的秘密没有传递给 OpenSSL 所以我修改如下 重新打开 JWT 模块并添加到猴子补丁中

module JWT
class << self
  def rsa_key_file
    secret_key_file_open {|f| OpenSSL::PKey::RSA.new(f, Doorkeeper::JWT.configuration.secret_key)}
  end
end
end

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2021-09-12
    • 2017-02-06
    • 2023-04-04
    • 2019-07-25
    • 1970-01-01
    • 2020-08-12
    • 2017-04-08
    相关资源
    最近更新 更多