【发布时间】:2022-01-14 04:15:26
【问题描述】:
我已经为我的 rest api 实现了 JWT 身份验证。
我很难理解如何在 JavaScript 中隐藏令牌。
例如,所有客户端(网络浏览器和手机应用程序)都会调用我的 api,并带有一个 header:
Authorization': 'Bearer eyJ0eXAiOXXXXXXX
在 PHP 中这是有道理的,但在 JavaScript 中“每个人”都可以看到令牌。那么拥有一个有什么意义呢?
即使令牌在 X 分钟后过期,您只需每隔 X 分钟获取一次新令牌,即可访问相同的 API。
我错过了什么吗?
【问题讨论】:
-
你为什么要隐藏你的令牌?令牌的目的是让您不必使用您的凭据 - 确实需要保密
-
how to hide the token- 在这种情况下,您不了解 JWT 令牌。没有理由隐藏它 -
因此,如果不使用我的网站,另一个应用程序无法直接连接到我的 api。现在他们可以轻松地:从我的网站读取令牌,直接使用我的 api,在需要时刷新令牌。
-
用户登录时在服务器上生成令牌,然后返回并存储在客户端本地,并在每个后续请求中发送。看到这个:cdn.auth0.com/content/jwt/jwt-diagram.png
-
不要对网站和 API 使用相同的令牌,或者在 API 中包含受众声明
aud:website并拒绝这些令牌
标签: javascript authorization jwt