使 Chrome 扩展检测用户是否登录到我的 Wordpress 网站

Make Chrome Extension detect if user is logged in on my Wordpress website

我有一个 Wordpress 网站和一个 Chrome 扩展。如果用户登录该网站,我希望 Chrome 扩展知道这一点(反之亦然)。 Chrome 扩展中没有登录表单;用户将始终通过网站登录表单登录。
当您登录网站时,Wordpress 默认设置其身份验证 cookie 以识别用户。我最初的想法是:我还想要 return 某种访问令牌,我会将其存储在扩展可以找到它的某个地方,并使用它向 Wordpress REST 发出经过身份验证的请求 API .但是..我应该在哪里存储它(以安全的方式)以便我可以在扩展中找到它?
也许我应该尝试不同的方法?

谢谢!

你可以做什么,更简单的方法:

  • 创建 Ajax 操作或 REST API 路由
  • 如您所见 in the documentation,身份验证是基于 cookie 的。因此,一旦用户从 WordPress 登录表单登录,身份验证 cookie 就会添加到您的浏览会话中
  • 没有覆盖,使用 JS HTTP 查询时也会转发 cookie(例如 ajax)
  • 您的路线可以检查 is_user_logged_in()wp_get_current_user() 之类的可用方法。并且 return 结果(如果需要的话)到你的插件 JS
  • 您可能需要更改 WordPress cookie 配置,以便可以从任何地方(任何域)访问它们,检查 this

更好的方法:

  • 会使用像this这样的插件来实现REST API Oauth2认证
  • 用户应该能够直接从扩展 window 登录(需要开发),然后使用刷新令牌功能来保持用户登录。
  • 我相信你可能还需要更新你的实际登录表单,如果它是经典的或 OAuth rest API 登录,应该能够发回所需的 OAuth 令牌(访问和刷新令牌),到前端(然后存储在本地存储或其他)由扩展使用。为了避免必须登录两次。