需求背景
最近有个需求,是对接某个运动APP的Api开放平台用户授权业务。文中以两个API为例:
1、获取token
场景:用户在授权⻚页⾯面点击授权后,⻚页⾯面会跳转到合作⽅方提供的redirect_url,合作⽅方通过跳转传回的code换取token,完成认证和授权。
Header附加参数:Authorization:Basic base64(AppKey:AppSecret) `
注意:Basic后⾯面必须有一个空格。
2、获取用户资料
场景:获取用户资料接⼝⽤于获取用户在APP的用户资料。
Header附加参数:Authorization:Bearer token
注意:Bearer后⾯面必须有一个空格。
分析
从上述API资料里面分析得出要对接这两个API需要设置不同的Header信息,那么就需要代码中支持动态设置header功能。
项目框架
由于项目是使用SpringCloud 集成Feign搭建的基础框架,并且在项目中已经设计了全局的Header。
通过实现RequestInterceptor接口,完成对所有的Feign请求,设置Header代码如下:
@Configurationpublic class FeignClientConfig implements RequestInterceptor { @Value("${token}") private Stri