我正在使用Dagger和Retrofit。 我使用Dagger注入我的Retrofit服务。
现在,我想发出授权请求以获取accessToken。
之后,我想通过添加请求拦截器来增强我的API模块,以便将此访问令牌用于未来的请求。
我的想法是在收到访问令牌后使用ObjectGraph.plus()方法,但我不确定这是否是最佳方法。
有人能指点我正确的方向,或者在GitHub上有示例项目吗?
我正在使用Dagger和Retrofit。 我使用Dagger注入我的Retrofit服务。
现在,我想发出授权请求以获取accessToken。
之后,我想通过添加请求拦截器来增强我的API模块,以便将此访问令牌用于未来的请求。
我的想法是在收到访问令牌后使用ObjectGraph.plus()方法,但我不确定这是否是最佳方法。
有人能指点我正确的方向,或者在GitHub上有示例项目吗?
关键是始终添加RequestInterceptor
,然后更改它是否添加标题。
class ApiHeaders implements RequestInterceptor {
private String authValue;
public void clearAuthValue() {
authValue = null;
}
public void setAuthValue(String authValue) {
this.authValue = authValue;
}
@Override public void intercept(RequestFacade request) {
String authValue = this.authValue;
if (authValue != null) {
request.addHeader("Authorization", authValue);
}
}
}
这样你就可以在需要设置或清除令牌时注入你的ApiHeaders
单例。