# 集成第三方的单点登录

集成第三方登录需要用户自己选择第三方软件,将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);
}

至此,集成第三方登录完成。

上次更新: 2023/7/20下午12:25:28