rails API 422无法处理的实体:无验证密钥,Heroku

问题描述 投票:0回答:2

I使用JWT身份验证系统创建了Rails API,并将其部署到Heroku。当我在本地请求端点时,一切似乎都很好,但是当我向实时端点提出请求(即Heroku部署的应用程序)时,我会遇到:

422 Unprocessable Entity
服务器错误,响应主体看起来像这样:

{
    "message": "No verification key available"
}

负责编码和解码验证令牌的班级定义如下:

class JsonWebToken
  # secret to encode and decode token
  HMAC_SECRET = Rails.application.secrets.secret_key_base

  def self.encode(payload, exp = 24.hours.from_now)
    # set expiry to 24 hours from the creation time.
    payload[:exp] = exp.to_i

    # sign token with application secret
    JWT.encode(payload, HMAC_SECRET)
  end

  def self.decode(token)
    # get payload, first index in decoded Array
    body = JWT.decode(token, HMAC_SECRET)[0]
    HashWithIndifferentAccess.new body
    # rescue from all decode errors
  rescue JWT::DecodeError => e
    # raise custom error to be handled by custom handler
    raise ExceptionHandler::InvalidToken, e.message
  end
end

我有一个端点

/signup
,我可以在其中提出一个邮政请求以注册新用户,并且可以访问,并且仅适用于注册用户。制作注册请求非常好,但是当我尝试将邮政请求发布到
POST /todos
端点时,它会引起错误。
用户和西装之间的关联分别为1:m。
请您对如何解决此问题有任何想法,我将非常感激,谢谢:)。

我终于通过将

/todos

ruby-on-rails authentication jwt authorization
2个回答
0
投票
fig

Rails.application.secret_key_base

json_web_token.rb
来弄清楚了。有关此的更详细的评论,请查看thisLink
。希望这将有助于面临类似问题的人。

这也是我的问题。查看我的

0
投票
文件后,

i弄清楚了我写了以下行:


secrets

有一个额外的参考,这引起了问题。应该是:

HMAC_SECRET = Rails.application.secret_key_base

但就我而言,您设法自己弄清楚了!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.