请问能否基于WordPress账号密码实现sso?

我有一个用WordPress搭建的网站,同时又有几个搭着玩的项目。我想让这几个项目共享一套账号密码,并实现SSO。
查阅资料后发现WordPress采用的是phpass密码算法,然后把phpass.php导入到其中一个网页,成功在这个网页实现验证WordPress账户密码并登陆,但是并没有使WordPress同步登录。看了一下代码,phpass只是对密码进行哈希运算,只能用来加密和验证密码。我还需要做些什么才能让我在A网站登录的同时,B、C、D网站也能同步登录?设置session吗?如果是设置session的话,WordPress的session又是如何实现的。
谢谢🌹((❤️⥎❤️))🌹

回复
阅读 615
1 个回答

最简单直接的办法就是多网站公用同一个User Table。

如果都是Wordpress网站的话你有2个选择:

  1. 写一个Wordpress Plugin, 然后安装到所有的网站。工作远离就是要在Pluin里面标注那个是主站那个是辅站。抓取用户登录的动作,然后都去到主站的数据库去验证用户,然后用Wordpress的内置函数创建相应网站的session。这个的前提条件是,用户在创建账户的时候也要根据主站辅站的关系存储用户数据到主站
  2. 使用Wordpress Multiple Site, 然后共享用户列表。这个相对简单一些直接,用户登录,创建账户的时候直接切换到主站即可。

如果不都是基于Wordpress建立的网站,那么你需要一个垂直数据库用来存储用户名字与验证Token,还有过期日期。每次用户无论在那个网站登录成功都会更新这Token跟过期日期。如果你的辅站都是要通过主站才能进入的话那么久直接传递这个Token。否则可以通过存储到浏览器的locationStorage或者sessionStorage实现Token传递。省下的就是在辅站里面验证这个Token了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏