【问题标题】:Implementation JWT on Application (Understanding concept of JWT)Implementation JWT on Application(理解JWT的概念)
【发布时间】:2021-08-22 07:28:08
【问题描述】:

我只是在 PHP 上学习 JWT。我有点了解 JWT 如何在单页上工作。当我在多个页面上实现时(页面到另一个页面)。

如果每个用户移动到另一个页面,我们必须用令牌(承载代码)填充 HTTP_AUTHORIZATION 并同时生成新令牌,我的实现是否正确?

提前致谢

【问题讨论】:

  • 请分享更多细节。 “单页”是什么意思?是什么让您认为您需要随时生成新令牌?
  • 这可能取决于您谈论的是基于浏览器的 UI 还是 API。使用 UI,初始令牌可能会被交换为会话 ID,然后浏览器使用该会话 ID 向服务器标识自己。使用 API,您通常必须在每个请求中发送令牌(因为没有 Session 的概念,因此它更加无状态)。
  • @Adyon,如果我们使用基于浏览器的 UI,我应该将它存储在 cookie 中吗?然后我们可以从另一个页面访问它。

标签: php jwt


【解决方案1】:

从概念上讲,JWT 是使用用户名和密码成功登录后发给用户的不记名令牌。

通常对于移动应用程序,我们为 JWT 令牌设置较长的到期时间,而对于 Web 应用程序,我们使用 JWT 刷新机制通过使旧令牌无效并使用一组新令牌刷新而无需再次登录来避免无效 API 滥用。一旦 JWT 令牌过期,则需要将用户踢出。

对于移动应用,JWT 可以保存在 SharedPreference 中,并为所有 API 调用使用相同的密钥。将其设置为环境而不是基于页面,这样您就无需每次在每个页面中都重新设置。

阅读此https://tech.justeattakeaway.com/2019/12/04/lessons-learned-from-handling-jwt-on-mobile/

【讨论】:

  • 它们和我们在cookie上存储令牌的方式一样吗?
  • 对于普通网站,我们使用会话。会话与 cookie 不同。但是对于基于 API 的网站,我们需要使用不记名令牌进行身份验证。
猜你喜欢
  • 2021-12-12
  • 2014-10-13
  • 2014-09-14
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
相关资源
最近更新 更多