【问题标题】:Hide JWT token in Javascript在 Javascript 中隐藏 JWT 令牌
【发布时间】: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


【解决方案1】:

在我对 Token 的了解中,它们用于帮助服务器了解“谁在发送此请求”以及此人是否有权这样做。

它们是为了简化这个过程,而不是为了安全。

如果您不使用 Token,我认为,这意味着您必须在每次请求时发送并检查密码。

但是是的,里面的信息没有隐藏,正如你所读到的Here

除非加密,否则请勿将机密信息放入 JWT 的有效负载或标头元素中

我知道你可以加密你的令牌,但我从来没有这样做过,所以我不能多说。

一种解决方案是使用 SSL/HTTPS 来确保安全。

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 2018-04-08
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2018-05-29
    • 2023-03-16
    相关资源
    最近更新 更多