Session Joomla中的同步会话令牌
CMS-Joomla!2.5Session Joomla中的同步会话令牌,session,joomla,single-sign-on,session-cookies,access-token,Session,Joomla,Single Sign On,Session Cookies,Access Token,CMS-Joomla!2.5 任务-当我登录www.domain.com(A)时,我应该自动登录到test.domain.com(B),反之亦然。 实施 当我访问站点A时,会话cookie被设置为具有会话id。一旦我登录到站点A,将检查用户凭据,然后使用用户id更新j25_会话表中的会话记录。完成此操作后,我可以在站点A中自由导航,因为会话id位于会话cookie上。 cookie中存储的cookie id和会话id在站点B上是相同的。这是因为我已将两个网站上的cookie域设置为.domain
任务-当我登录www.domain.com(A)时,我应该自动登录到test.domain.com(B),反之亦然。
实施
当我访问站点A时,会话cookie被设置为具有会话id。一旦我登录到站点A,将检查用户凭据,然后使用用户id更新j25_会话表中的会话记录。完成此操作后,我可以在站点A中自由导航,因为会话id位于会话cookie上。 cookie中存储的cookie id和会话id在站点B上是相同的。这是因为我已将两个网站上的cookie域设置为.domain.com,并且在配置文件中使用了相同的机密值。站点B还可以访问站点A的会话数据,因为表正在共享(创建视图)。 因此,理想情况下,即使我从站点A移动到站点B,会话也应该有效,并且我应该登录。
问题
当我从站点A移动到站点B时,会话无效。据我调查,这是由于登录表单中的令牌造成的。表单中的令牌与会话中保存的令牌不同,这会导致会话死亡
有什么想法吗?如果您想手动执行此操作,您需要面对一些问题。 首先,有一个很好的组件--JFusion支持良好,但我不确定它是否允许两个joomla站点之间的双向会话。看看吧,你可以节省很多时间,如果不是几天 使用者 为了对不同joomla站点的某人进行身份验证,站点a和站点B上的#uuu users表中必须有相同的数据库记录,除了相同的会话cookie外,还必须有相同的ID和用户名 解决此问题的几种方法:
- 创建一个用户插件,将#######用户和##用户组"地图中的条目从站点a同步到站点B,反之亦然。这必须处理注册后创建数据、删除后删除记录和更新记录的操作
- 使用MySQL复制(Master-Master)在站点A和站点B之间同步#u用户和#u用户组映射表,反之亦然
- 使用curl获取站点B的登录表单
- 使用正则表达式从中取出标记
- 向站点B上具有登录任务的组件用户发送POST请求
- 假设#(uu)用户表两侧相同
- 在站点A上成功进行身份验证后,在站点B上的表#_sessions中创建相同的会话记录
- 使用MySQL复制(Master-Master)在两个站点之间复制#_会话表
- 在两个站点的Joomla后端设置相同的“会话过期后”设置
- 在两个站点上使用MySQL复制或用户插件复制#uu用户表