Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails API 422不可处理实体:没有可用的验证密钥,heroku_Ruby On Rails_Api_Authentication_Jwt_Authorization - Fatal编程技术网

Ruby on rails Rails API 422不可处理实体:没有可用的验证密钥,heroku

Ruby on rails Rails API 422不可处理实体:没有可用的验证密钥,heroku,ruby-on-rails,api,authentication,jwt,authorization,Ruby On Rails,Api,Authentication,Jwt,Authorization,我创建了一个带有JWT身份验证系统的Rails API,并将其部署到Heroku。当我在本地请求终结点时,一切似乎都正常工作,但当我向实时终结点(即Heroku部署的应用程序)发出请求时,我得到一个:422不可处理实体服务器错误,响应正文如下所示: { "message": "No verification key available" } 负责对身份验证令牌进行编码和解码的类定义如下: class JsonWebToken # secret

我创建了一个带有JWT身份验证系统的Rails API,并将其部署到Heroku。当我在本地请求终结点时,一切似乎都正常工作,但当我向实时终结点(即Heroku部署的应用程序)发出请求时,我得到一个:
422不可处理实体
服务器错误,响应正文如下所示:

{
    "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请求来注册一个新用户和
POST/todos
,该端点只有注册用户才能访问和使用。发出注册请求可以很好地工作,但是当我尝试向
/todos
端点发出POST请求时,它会引发一个错误

用户与西装的关联度分别为1:m


如果您对我如何解决这个问题有任何想法,我将非常感激,谢谢:)。

我终于找到了解决办法,将
Rails.application.secrets.secret\u key\u base
更改为
Rails.application.secret\u key\u base
。有关这方面更详细的评论,请查看。希望这能帮助面临类似问题的人