# 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,此对象中保存了会话期间的用户数据。