带有WP的JWT身份验证-方法


8

我们正在使用JWT(JSON Web令牌)通过外部服务对WordPress应用程序进行身份验证。我们正在考虑的电流是这样的:

  1. 用户在父网站上登录
  2. 父站点将带有用户信息和JWT令牌的POST请求发送到WordPress站点
  3. WP站点存储JWT令牌
  4. 每次用户访问新页面时都会检查令牌的到期时间,如果令牌已过期,则用户将被重定向到父站点以再次登录。

我的问题:

  1. 这是正确的方法吗?
  2. 如何存储JWT令牌?一块饼干?还是在数据库中,以用户的信息作为唯一标识符?注意:用户将不会在WP网站上注册。
  3. 如何检查有效期?

JWT有一个WP插件,但没有相关文档,因此我不确定它是否可以满足我的目的。


hmwt wtf是jwt吗?
马克·卡普伦

添加了相关链接。校验。
Rutwick Gangurde

好的,现在我知道什么是JWT了,我仍然不明白这个问题,以及为什么它专门针对wordpress。是否没有最佳实践指南?反正插件/库的建议是题外话....
马克·卡普伦

1
我不需要插件推荐,我正在编写自己的代码。删除了导致您如此认为的最后一行。
罗特威克·甘古德

Answers:


8

由于赞成,这显示为通知。这是我解决的方法。

  1. 我应该通过身份验证的应用程序中编码的端点准备令牌。
  2. 令牌必须采用指定的格式。
  3. 然后,应使用base 64编码并对其进行哈希加密。
  4. wp_init处理程序应用于处理端点发送的POST请求,以提取令牌。
  5. 密钥将通过其他方式共享,用于解密。
  6. 提取令牌后,将其与具有相同信息的本地生成令牌进行比较。
  7. 将其存储在cookie中,并在每次访问页面时对其进行检查。您可以在一段时间后使它过期,或者继续增加每次页面访问的时间片。

端点可以使用任何语言。这也是它的一般流程,您可以在任何需要的地方使用它。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.