在实际的生产中,我们一般都会通过用户的授权token来获取对应的用户信息。然后对用户进行一系列的操作,这篇文章我们介绍下如何通过oauth2.0获取到的accesstoken来获取用户的信息。
其实在前面我们的登录和退出功能都是我们自己写的,因此这里的话,我们还是专门编写一个接口来通过用户的accesstoken来获取用户的信息。整个接口的核心代码是:
@RequestMapping(value = "/getUserInfo", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public BaseResponse getUserInfo(HttpServletRequest request) {
String authHeader = request.getHeader("Authorization");
if (authHeader != null) {
String tokenValue = authHeader.replace("Bearer", "").trim();
OAuth2Authentication authentication = tokenStore.readAuthentication(tokenValue);
return BaseResponse.ok(authentication.getPrincipal());
}
return BaseResponse.fail(ResultCode.INVALIDUSER);
}代码没有很多,主要是使用tokenstore去读取用户的认证信息,然后获取对应的principal即可。所以我们只需要把这个接口放到实际的项目中即可,然后启动起来我们访问一下:
可以看到我们获取到了用户的信息,在这里的userEntity里面。
备注:
1、切记这里写的这个获取用户的接口,需要把他配置到oauth的白名单里面去。
最后按照惯例,附上本案例的源码,登录后即可下载。


还没有评论,来说两句吧...