# EOS微服务应用会话数据以及前后端访问

EOS微服务应用会话数据主要存放于受管的用户数据对象上下文(MUO) (opens new window)

MUO中还有个系统默认的隐藏属性是userObject,对应的类型是java:com.eos.data.datacontext.IUserObject,用于存放用户的身份信息。关于IUserObject的具体说明请参见用户对象 (opens new window)

# 前端访问

# 1. 登录:

用户登录后,前端可以拿到session中保存的Authentication值,此值作为userObject唯一凭证,保证用户在整个会话中保持登录状态。

@ApiOperation("登录")
    @PostMapping("/login")
    public UserObject login(@MultiRequestBody User user,@MultiRequestBody String verifyCode, HttpServletResponse response) {
        UserObject userObject = loginService.login(user,verifyCode);
        //登录成功后添加认证头信息
        response.setHeader(UserLoginInterceptor.AUTHORIZATION,userObject.getUniqueId());
        return userObject;
    }

# 2. 访问数据:

登录接口成功后,会拿到用户登录保存的UserObject用户信息,用来在整个会话期间访问登录用户。

# 后端访问

用户登录后,用户信息会存放于MUO中,在整个会话session期间,此MUO会保证用户为同一个。

访问如下:

public static UserObject getCurrentUser() {
        try {
            UserObject user = (UserObject)DataContextManager.current().getMUODataContext().getUserObject();
            if (user != null) {
                return user;
            }
        } catch (Throwable t) {}
        throw NOT_LOGIN.runtimeException();
    }

通过MUO,可以获取用户对象IUserObject,此对象中保存了会话期间的用户数据。

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