access_token过期失效,refresh_token还在有效期内,刷新token后怎样继续原来的请求?
来源:6-3 SpringSecurityOAuth核心源码解析

之影
2019-02-17
老师您好,如果在access_token过期失效,refresh_token还在有效期内,发送请求后进入自定义
@Component
public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint 的重写方法commence中,在方法里通过
MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add(“grant_type”, “refresh_token”);
formData.add(“refresh_token”, refreshToken);
HttpHeaders headers = new HttpHeaders();
headers.set(“Authorization”, this.getAuthorizationHeader(client_id, client_secret));
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
String url = “http://localhost:8888/oauth/token”;
Map<String, Object> map = this.postForMap(url, formData, headers)
这样发送了刷新token的请求,也拿到了新的access_token和refresh_token
下一步是在后台通过请求转发继续访问原来要访问的资源呢?还是把新token带到前端,前端接到新token再自动重新发起请求?
如果是后台自动请求转发,那request中携带的还是原来那个已经失效的token,怎样把新的token设置到request中,如果是让前端再次用新token发起请求,那应该怎样设计呢?
希望老师的解答,谢谢老师!
1回答
-
JoJo
2019-02-25
我们的做法是前端存token时,cookie过期时间和token有效期是一致的,这样token过期了从cookie中就拿不到了,拿不到了就刷token
00
Spring Security技术栈开发企业级认证与授权
2662 学习 · 1561 问题
相似问题