在域的子目录中在域和 WordPress 之间进行单点登录

问题描述 投票:0回答:1

我们有一个私人网站

www.domain.com
,有自己的用户和用户密码。我们现在在子目录
www.domain.com/store
中添加一个私人 WordPress 站点。由于我们的主站点上已经有用户列表,设置单点登录的最佳方法是什么,以便当用户登录
www.domain.com
时,他们会自动登录
www.domain.com/store

我们发现的所有插件都设置了与 Google、Facebook 等提供商的单点登录,这不是我们需要的。

这是迄今为止我们能够做到这一点的唯一方法:

  1. 将现有用户导入
    wp
    数据库
  2. 当用户登录
    www.domain.com
    时,在
    wp
    中启动会话(这是通过我们创建的自定义插件完成的)
  3. 当用户注销
    wp
    www.domain.com
    时,结束另一个站点中的会话,以便用户从两个站点注销。
  4. 如果未登录的访问者尝试访问
    www.domain.com
    网站上的任何页面,则将其重定向回
    wp

本质上,我们为每次成功登录创建两个会话(每个站点一个),并在他们注销时销毁这两个会话。这感觉像是错误的方法,但我们不知道如何进行设置。此外,此方法要求我们在

wp
中创建新用户时将重复的用户数据插入到
www.domain.com
数据库中。

php wordpress session single-sign-on subdirectory
1个回答
0
投票

不幸的是,WordPress 定制让事情变得更加困难,但这是我的方法:

  • 您有 2 个不同的域,其中 2 个应该查看另一个端点(我们称之为“proxy.php”)

  • 代理文件与 2 个项目分开,其唯一的主要目标是在当前用户上设置会话(如果未设置)

  • 代理应向您发送 xyz 令牌,并将此令牌用作验证密钥以允许用户登录或不登录

  • 代理文件应包含一个 get_session($user_id) 函数来列出用户数据


我们的想法是拥有 1 个共享文件来管理身份验证流程,而不是单独管理所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.