SWR 在每个 api 调用中公开 client-id 和 Bearer 令牌,我应该认为是正确的
SWR exposes client-id and Bearer tokens in every api call, I should be concered right
长话短说,我刚刚用 NextJs、NextAuth 和 SWR 构建了一个应用程序,我使用 SWR 调用多个 Twitch API,以验证 Twitch API 我使用我的Twitch 应用程序 Client-Id,以及从 NextAuth 的 session object.
获取的登录用户 Bearer 令牌
我担心的是,每当 SWR 执行和 API 功能用数据填充页面或更新它时,您可以轻松查看请求 headers 在 chrome 中捕获网络调用或 Firefox 开发工具 。这主要是关于这是一个生产环境,它仍然会发生,这也违反了 Twitch 开发人员文档并且很确定那里有“警告:将您的令牌视为密码。例如,永远不要在任何 public URL 中使用访问令牌,永远不要在任何网页上显示令牌而不需要单击 de-obfuscate。"
是否有隐藏这些的方法或解决方案?
现在我的下一个最佳问题是我怎样才能阻止这种情况发生,他们是否有办法?
不用惊慌。
可以在请求的 Authorization
header 中包含 Bearer 令牌 - 事实上,这是发送它们的标准方式。你不能在 Chrome 的开发工具中隐藏它,因为那样会破坏它的目的。
您阅读的建议 永远不要在任何 public URL 中使用访问令牌可能意味着永远不要在 URL 中显示它们喜欢 mywebsite.com/?token=[abcd]
因为这样它就可以通过浏览器历史记录访问,或者不要将为一项服务设计的令牌发送到另一项服务的 API.
这与 SWR 无关 - 这是标准的 HTTP 行为。
长话短说,我刚刚用 NextJs、NextAuth 和 SWR 构建了一个应用程序,我使用 SWR 调用多个 Twitch API,以验证 Twitch API 我使用我的Twitch 应用程序 Client-Id,以及从 NextAuth 的 session object.
获取的登录用户 Bearer 令牌我担心的是,每当 SWR 执行和 API 功能用数据填充页面或更新它时,您可以轻松查看请求 headers 在 chrome 中捕获网络调用或 Firefox 开发工具
是否有隐藏这些的方法或解决方案?
现在我的下一个最佳问题是我怎样才能阻止这种情况发生,他们是否有办法?
不用惊慌。
可以在请求的 Authorization
header 中包含 Bearer 令牌 - 事实上,这是发送它们的标准方式。你不能在 Chrome 的开发工具中隐藏它,因为那样会破坏它的目的。
您阅读的建议 永远不要在任何 public URL 中使用访问令牌可能意味着永远不要在 URL 中显示它们喜欢 mywebsite.com/?token=[abcd]
因为这样它就可以通过浏览器历史记录访问,或者不要将为一项服务设计的令牌发送到另一项服务的 API.
这与 SWR 无关 - 这是标准的 HTTP 行为。