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