php - 为什么我应该使用 JWT 而不是简单的散列 token

标签 php jwt

由于不应共享敏感信息,对 JWT 有什么需求?

我可以创建一个 token 列,将其存储在数据库中并调用它,以交叉验证 token 并获取用户详细信息。

自定义生成的 token 可以使用 key 进行哈希处理,因此不会被解码。当它如此简单时,为什么要使用复杂的 JWT 类型,这是有信息的。

最佳答案

What is the need for JWT as there shall be no sensitive information shared?



在大多数情况下,不能将具有私有(private) ID、到期日期或颁发者的主题视为敏感主题。并且 token 必须在双方之间保密,因为拥有是身份验证的证明。

在任何情况下,都可以使用 JWE 对 JWT 内容进行加密。

The custom generated token can be hashed with a key so its not decoded. When its so simple, why to use a complicated JWT kind, that has information.



与不透明的 token 系统相比,JWT 有一些优势:
  • 无需服务器存储 token
  • token 有到期日期
  • 在各方之间安全地共享信息。

  • 还有缺点...
  • 没有撤销机制。不建议设置黑名单,因为它破坏了JWT无状态
  • 增加 token 大小
  • 关于php - 为什么我应该使用 JWT 而不是简单的散列 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865108/

    相关文章:

    c# - IdentityServer4 token 签名验证

    Spring Boot 和 JWT - JSESSIONID 允许 REST 请求而不需要 JWT?

    node.js - 使用 Google Cloud Key Management Service 签署 JSON Web Tokens

    dart - 如何在Flutter中解码JWT?

    使用 ExtraScopesToConsent 和 AcquireTokenSilent 对多个受众进行 Azure 身份验证

    php - 在 foreach 中捕获数组的下一个值

    php - mysql查询检索过去15天每天的记录数

    php - 无法将字符串转换为整数

    java - 从纬度和经度查找邮政编码

    php - 使用 Behat 在 PHP 中找不到类 'Behat\Behat\Context\BehatContext'