在实际的生产中,我们一般都会通过用户的授权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的白名单里面去。
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...