# 集成第三方的单点登录
集成第三方登录需要用户自己选择第三方软件,将AFCENTER中的用户或者员工信息和第三方软件的信息同步。
# 开发步骤
# 1. 拿信息
通过第三方软件,拿到用户或者员工信息。
# 2. 校验信息
根据信息校验信息是否有效用户。
# 3. 初始化UserObject
根据自己需求,设置UserObject中的属性。
// 获取UserObject
UserObject userObject = new UserObject();
// 设置UserId
userObject.setUserId("11111");
// 设置UserName
userObject.setUserName("user");
// 设置员工属性
userObject.put("employeeId", "222222");
userObject.put("employeeName", "employee");
// 设置自定义其他属性
userObject.put("other", "other");
# 4. 登录
使用OnlineUserManager完成登录,自行设置缓存失效时间。
OnlineUserManager.login(userObject, timeOut, timeunit);
参数 | 类型 | 说明 |
---|---|---|
userObject | UserObject | 用户对象 |
timeOut | Long | 缓存失效时间 |
timeunit | TimeUnit | 时间单位 |
# 5. 设置MUO
初始化用户对象后,需要将用户对象的session设置到MUO中,供数据上下文使用。MUO参考 (opens new window)
示例:
//根据session创建MUO,并初始化上下文
private void initMuo(IUserObject userObject,boolean isLogin) {
//根据session创建MUO,并初始化上下文
Object rootObject = DataContextManager.current().getRequestCtx().getRootObject();
//手动设置userObject
HttpSession session = ((HttpServletRequest) rootObject).getSession(isLogin);
session.setAttribute(IUserObject.KEY_IN_CONTEXT,userObject);
//匿名用户初始化,不做判断,每次登录都初始化userObject
IMUODataContext muo = MUODataContextHelper.create(session);
DataContextManager.current().setMUODataContext(muo);
}
至此,集成第三方登录完成。