wordpress - 存储 JWT 令牌以供多域使用的最佳方法
问题描述
我想允许用户使用 jwt-authentication (aam-plugin )。
所有朋友域都安装了朋友插件。此插件为朋友发送一个 POST 请求到特定 aam 插件生成的端点:my-domain.com/wp-json/aam/v2/authenticate 与用户凭据。例如,响应将用户特定的 JWT 用于向friend1-domain.com 进行身份验证。用户可以做所有神奇的事情,朋友插件允许从friend1-domain.com 做的事情。
我想将身份验证 JWT 安全地存储在用户浏览器中,以便用户可以跳转到另一个博客friend2-domain.com,在那里使用插件为朋友做更多的魔术人员,而无需新的身份验证(使用浏览器存储中的 JWT)。
怎么做?如果您可以用一些代码来说明您的答案,那就太好了。谢谢!
解决方案
您必须使用 samesite=None 在您的域上设置 JWT cookie。发生的情况是,当您从friend1-domain.com 或friend2-domain.com 发出请求时,您的域中设置的jwt 现在不会根据最新浏览器版本与这些请求共享(最初默认情况下samesite 设置为none,出于安全原因,后来改为“Lax”)。当 samesite 设置为 None 时,意味着第三方域可以发送此 cookie,同时为您的域发出可由您的域授权的请求。你可以在这里阅读更多关于这个samesite cookie以及如何使用它的信息https://web.dev/samesite-cookies-explained/
您还必须在设置 samesite=None 时设置 secure=True。
推荐阅读
- python - 无法删除日期时间中的时间戳
- sql - 如何使用不同的约束在联合选择中部分共享参数值?
- reactjs - 反应useState,输入值不更新
- jquery - 导出到文件时忽略 Jquery Datatables 中的标头中的 HTML
- jquery - 使用 jQuery 根据 td 类值对表进行排序
- django - 通过电子邮件接收 django 错误调试报告:
- kotlin - 如何在 mockito 中模拟具有许多构造函数参数的类?
- openssl - 我的 OPENSSL 嵌入式程序可以连接到某些服务器,但是无法连接到某些服务器
- php - PHP/MySQL - 更新查询插入新记录而不是更新记录
- google-maps - 谷歌地图颤振