最近在研究oAuth2。
已经理清楚了 AuthorizationServer,ResourceServer , oAuthClient之间的关系。
也能够自己搭建 AuthorizationServer,ResourceServer,获取access_token等一切正常。整个项目是用 sprong boot oauth2 搭建的。但但但。现在问题来了。
我拿到access_token之后怎么用?我在网上找了一大堆资料,大多都只介绍到怎么用access_token获取用户信息,也就是拿用户信息资源,并且实现了单点登录。
但我的resource肯定不只用户信息,还有一些别的资源 。那我怎么在我的客户端中方便的使用获取到的access_token。主要包括 客户端的access_token的存储,以及access_token的使用!
问题有:
一、如果是web应用,access_token放到前端好吗?个人感觉不太好。
二、如果是客户端服务器向资源服务器发送请求的话,如何优雅的携带access_token? 实际到代码层面 ,是使用 restTemplate ? feign ?或者其它什么技术比较优雅?
三、这个注解有什么用 @EnableOAuth2Client
已经理清楚了 AuthorizationServer,ResourceServer , oAuthClient之间的关系。
也能够自己搭建 AuthorizationServer,ResourceServer,获取access_token等一切正常。整个项目是用 sprong boot oauth2 搭建的。但但但。现在问题来了。
我拿到access_token之后怎么用?我在网上找了一大堆资料,大多都只介绍到怎么用access_token获取用户信息,也就是拿用户信息资源,并且实现了单点登录。
但我的resource肯定不只用户信息,还有一些别的资源 。那我怎么在我的客户端中方便的使用获取到的access_token。主要包括 客户端的access_token的存储,以及access_token的使用!
问题有:
一、如果是web应用,access_token放到前端好吗?个人感觉不太好。
二、如果是客户端服务器向资源服务器发送请求的话,如何优雅的携带access_token? 实际到代码层面 ,是使用 restTemplate ? feign ?或者其它什么技术比较优雅?
三、这个注解有什么用 @EnableOAuth2Client
解决方案 »
- 求java实现sip客户端开发的源码
- 请教一下这个图是用什么图画的
- 第一次做项目,遇到一难题,bbs项目,ie访问时无法取数据库内容
- 问一个十分弱智的问题!!!
- 急救 关于SmartUpload上传图片的问题
- 为什么用JAVA只能下载JPG或DOC等文件,不能下RAR和TXT
- 我是新手请问在那里下载ORACLE啊,
- 请关注这个问题::::用Struts,在Action中捕获异常后,想在JSP页面中显示一个描述这个异常的出错信息,怎么做最好???
- Tomcat和Jboss的最新版本分别是多少?哪里可以下载到?
- 我说没错,可是jdk却说错了,why?
- EJB项目,orale驱动选择导致的查询问题
- 200分求解:从OkHttp往http上移,对formBody拼接的在httpClient或HttpURLConnection中处理呢?
但在项目里面,我应该怎么存储这个access_token ?然后,怎么附加在请求头上?
我研究了一下 OAuthRestTemplate 好像有类似的作用,但还没有搞透彻,有更详细的资源吗?有了解Spring oAuth2 的大神能不能进来指点一下?
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
使用了Spring Cloud OAuth2的客户,Spring 提供了OAuth2RestTemplate,类似的Ribbon通过OAuth2RestTemplate访问资源服务资源的时候就会自动携带已经获取的access_token
@Bean
@LoadBalanced
protected OAuth2RestTemplate oAuth2RestTemplate(OAuth2ProtectedResourceDetails resource,
OAuth2ClientContext context) {
return new OAuth2RestTemplate(resource, context);
}
如果使用feign,需要定义OAuth2FeignRequestInterceptor,这样通过feign访问资源服务资源的时候就也会自动携带已经获取的access_token
@Bean
public RequestInterceptor oauth2FeignRequestInterceptor(OAuth2ProtectedResourceDetails resource,OAuth2ClientContext context) {
return new OAuth2FeignRequestInterceptor(context,new resource);
}