我已经根据本教程为我的Rails API构建了一个基于JWT令牌的身份验证。在开发模式下运行rails服务器,一切工作都完美无瑕。当我在生产模式下运行rails服务器时,我得到以下错误:
Started GET "/profiles" for 10.71.232.74 at 2021-10-19 15:17:37 +0200
Processing by ProfilesController#index as */*
Filter chain halted as :authenticate_request rendered or redirected
Completed 401 Unauthorized in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 150)
我现在想知道服务器的Dev和Prod模式之间的区别在哪里。我使用相同的数据库,所以在我的环境中没有区别,除了服务器的模式。
这个问题与JWT令牌生成有关。Rails无法访问secret_key_base(复制/粘贴错误)。在开发模式下,服务器只是在后台做了一些魔术来生成令牌,所以它确实有效。在生产中却没有。在使secret_key_base对Rails可用之后,它工作了。总的来说,rails中的错误信息误导了我。