我已经将jwt gem添加到gem文件中。我可以成功地执行登录请求,并接收授权令牌。然后,我使用授权令牌返回User对象。这在开发中工作得很好。
但是,在生产环境中,我无法使用授权令牌获取用户对象。我收到消息:没有可用的验证密钥。
我的搜索使我找到了this,但这是devise-jwt的,我也遇到了this,但它没有太大帮助。
来自heroku logs --tail --app stag的信息并没有真正的帮助
2020-11-25T20:15:30.493583+00:00 app[web.1]: I, [2020-11-25T20:15:30.493522 #4] INFO -- : [398a1a9c-fae2-454a-b991-5a922a679103] [active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (0.07ms)
2020-11-25T20:15:30.493805+00:00 app[web.1]: I, [2020-11-25T20:15:30.493736 #4] INFO -- : [398a1a9c-fae2-454a-b991-5h922a679973] Completed 422 Unprocessable Entity in 1ms (Views: 0.5ms | Allocations: 1356)这方面的任何帮助都将不胜感激,谢谢。
发布于 2021-02-02 03:08:36
最后,我找到了我的案例的解决方案。我不知道它是否适用于你,以下是我所做的:
首先,我使用Rails.application.secrets.secret_key_base作为我的JWT的密钥,在阅读了其他有同样问题的帖子后,我说可能Rails secret中的这个属性在Heroku中返回了nil,所以我决定创建我自己的密钥,我所做的就是使用一个名为secret_key的环境变量,然后引用它,我应该在JWT中使用它。
希望这能对你有所帮助。
https://stackoverflow.com/questions/65012181
复制相似问题