我正在试图弄清楚如何处理Passport包中的密码授予令牌。我应该将client_id和client_secret存储在.env文件中,还是在请求令牌时直接从数据库中获取值?
答案 0 :(得分:2)
这取决于你最终想要实现的目标。
Passport 令牌始终存储在数据库中,这是检索它们的正确位置(除非您正在优化生产应用程序,以获得更少的数据库负载)。
因此,如果您想构建 api 端点,可以在.env中安全地存储 PASSPORT_CLIENT_ID 。
然后,在您的控制器中,您可以轻松检索到您可能需要的所有数据。
怎么做?请阅读my post,了解如何将其嵌入 laravel 控制器中。
Passport 构建于oauth2 server之上,其中包含大量功能。
很可能你不会全部需要它们,所以你可以坚持基本的 jwt授权,就像这种情况一样。
此方法可让您针对不同的 CI 环境测试代码,同时不在 VCS 中共享任何特定的键/令牌,这绝对是一种很好的做法。
最后的注释...... Passport 制作像dingo,tymon jwt等的软件包..没用,因为它几乎包含所有内容,而真正重要的是,这是官方Laravel包。
答案 1 :(得分:1)
虽然您当然可以将值存储在.env文件中,但您应该将这些令牌视为您授予其他想要使用API的开发人员的秘密。如果每天有50位开发人员想要注册使用您的API,您会手动将它们添加到.env文件中吗?如果只有你/你的公司这个可以“好”,但我会将它们存储在数据库中以实现可扩展性。