文档详情

DiscuzX2与IDS轻量级集成手册.doc

发布:2017-05-29约4.63千字共11页下载文档
文本预览下载声明
DiscuzX2与IDS轻量级集成手册 一、单点登录 1、用户从IDS端登录 1) 用户输入用户名密码,从IDS登录; 2) discuz端首次打开的时候通过ids_client.php方法ids_user_token() 重定向去IDS获取全局会话ID 3)discuz端依据全局会话ID,向IDS获取已登录用户完整信息 请求地址:http://IDS的地址/service?idsServiceType=httpssoserviceserviceName=findUserBySSOID 具体参见ids_client.php方法ids_check_login($ssoId) 4) discuz取到用户信息以后,执行本地登录。 具体参见ids_login.php 用户在IDS和论坛都存在,并且密码相等(密码取自IDS字段:plainUserPwd),论坛直接登陆。 用户在IDS存在但是在论坛不存在,论坛走匿名用户显示当前页面。 用户在IDS和论坛都存在,但密码不相等(密码取自IDS字段:plainUserPwd),论坛走匿名用户显示当前页面(用户名重复,不是同一用户)。 2、用户从discuz端登录 1) 首次登录discuz,判断本地是否登录。如果没有本地登录,判断cookie是否存在IDS全局会话ID。 2)如果本地cookie中没有全局会话ID,则向IDS的LoginServlet地址,发起重定向请求,获取全局会话ID。 3) discuz获取到全局会话ID后,根据全局会话ID向IDS请求判断是否存在登录用户信息 请求地址:http://IDS的地址/service?idsServiceType=httpssoserviceserviceName=findUserBySSOID 具体参见ids_client.php方法ids_check_login($ssoId) 4)如果discuz取到已登录的用户信息,则执行本地登录; 5)如果discuz没有取到已登录用户信息,则跳转到登录页面,让用户登录;并且,登录时,discuz需要调用IDS的登录服务请求接口,请求IDS做全局登录。 请求地址:http://IDS的地址/service?idsServiceType=httpssoserviceserviceName=loginBySSOID 具体参见ids_client.php方法ids_user_login($username, $password, $sourceName, $clientIp) 用户在IDS和论坛都存在,并且密码相等(密码取自IDS字段:plainUserPwd),IDS先登陆,用返回的用户名和密码做论坛本地登陆。 用户在IDS存在但是在论坛不存在(IDS【message】返回值为‘不存在该用户!’),直接走论坛本地登陆。 用户在IDS和论坛都存在,但密码不相等(密码取自IDS字段:plainUserPwd),IDS提示用户名密码错误后走论坛本地登陆(此时记录一条日志)。 以上的a、b、c总结到一起就是:当提交登陆的用户名和密码通过IDS接口后返回用户数据那么就替换用户提交的登陆用户名和密码为相应的返回值做本地登陆,一旦返回的是错误就直接走本地登陆。 注释:uc用户表pre_ucenter_members中的用户密码为IDS同步推送用户数据中的plainUserPwd字段的值进行md5($password.$user[salt]),discuz论坛用户表pre_common_member中的密码为IDS同步推送用户数据中的plainUserPwd字段的值。 二、用户同步 1、 在IDS端注册的discuz应用,用户同步方式配置为HTTP同步,并且需要配置在discuz添加用户,修改用户,删除用户三个URL地址; 2、从IDS添加用户,同步推送到discuz 1)IDS注册一条用户信息以后,根据是否有discuz访问登录的权限判断,会向discuz应用配置的添加用户URL推送用户数据; 2)discuz添加用户的URL,按照IDS用户同步设置页面提示的属性名,如userName,email, plainUserPwd等格式接收用户数据,并保存到本地数据库; 3、从IDS修改用户密码等信息,同步推送到discuz 1)IDS修改用户密码以后,根据是否有discuz访问登录的权限判断,会向discuz应用配置的修改用户URL推送用户数据; 2)discuz修改用户的URL,按照IDS同步设置页面提示的属性名,如userName,email, plainUserPwd等格式接收用户数据,并更新到本地数据库; 4、从discuz前台注册或者后台添加用户,都不同步推送到ids 三、
显示全部
相似文档