如何解决使用 Laravel 护照时如何防止暴露客户端机密?
我正在尝试实施 Laravel 的通行证来保护我的 api 路由,但我遇到了一种情况,除非授权应用程序调用该路由,否则该路由应该无法访问。我正在尝试使用 Client Credentials Grant Tokens 并使用邮递员我能够生成访问令牌,然后我可以将其用于访问授权。
问题是 - 我不明白我应该如何安全地将它与 Vue
和 axios
一起使用。我有我需要在其中调用这个 api 的组件,我当然可以设置一个包含所有必要字段(client_id
、client_secret
和 grant_type
)的表单主体,但这意味着任何人都可以打开 Chrome 开发工具并在源代码中搜索 client_secret
,他们将获得硬编码的客户端密钥,这将授予他们对 api 的访问权限。这样做的正确方法是什么?
解决方法
这取决于您如何使用 Vue 前端。
如果它是主要用于您自己网站的前端,但有时需要访问外部 API,那么您应该让后端进行 API 调用并在那里存储机密。
如果您正在开发专用于外部 API 的 Vue 前端,但在不同的域上运行,您可以选择 PKCE 选项:https://laravel.com/docs/8.x/passport#code-grant-pkce
如果您的前端与 API 位于同一域,请使用 Laravel 护照提供的 CreateFreshApiToken 选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。