注册之后如何完成自动登录呢?
来源:5-7 开发微信登录
jiiiiiin
2018-09-07
也就是不启用ConnectionSignUp组件,授权完成还是渲染注册页面,在注册提交确认接口,完成业务系统的用户注册和spring social和业务系统用户关系绑定之后,不需要再让用户进行手动登录,而是直接完成登录流程,这个从后端层面要如何做?
@PostMapping("/user/auth/register")
public String register(User user, HttpServletRequest request, HttpServletResponse response) {
// TODO 待写注册或者绑定逻辑(绑定需要查询应用用户的userid,通过授权用户信息,授权用户信息在providerSignInUtils中可以获取)
// 不管是注册用户还是绑定用户,都会拿到一个用户唯一标识。
String userId = user.getUsername();
// 真正让业务系统用户信息和spring social持有的授权用户信息进行绑定,记录`UserConnection`表
providerSignInUtils.doPostSignUp(userId, new ServletWebRequest(request));
// appSingUpUtils.doPostSignUp(new ServletWebRequest(request), userId);
// !注册成功还需要用户在重新登录才能进来,目前没有找到直接帮用户进行ss登录的方法
final SavedRequest savedRequest = requestCache.getRequest(request, response);
if (savedRequest != null) {
final String originalReqUrl = savedRequest.getRedirectUrl();
return "redirect:" + originalReqUrl;
} else {
return "redirect:/";
}
}
即在这个接口如何直接完成登录?
写回答
1回答
-
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(user, "123456", AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"));
SecurityContextHolder.getContext().setAuthentication(authentication);
类似这样,往安全上下文里直接放一个认证过的Authentication
022018-09-10
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题