'Refresh token in custom Interceptor class flutter
i use dio for api calls . On dio i add Custom Interceptors:
factory ApiClient.instance() {
dio.interceptors.add(CustomInterceptors());
return _instance;
}
Custom Interceptor extends Interceptor. I need in on void onError(DioError err, ErrorInterceptorHandler handler) when err?.response?.statusCode == 401) refresh token.
void onError(DioError err, ErrorInterceptorHandler handler) async {
print(
'ERROR[${err.response?.statusCode}] => PATH: ${err.requestOptions.path}');
//TODO :- if status == 401 => refresh token
if (err?.response?.statusCode == 401) {
Response response = await ApiClient.instance().refreshUserToken();
if (response.statusCode == 200) {
LoginResponse? _loginResponse = LoginResponse.fromJson(response.data);
ApiClient.instance().userToken = _loginResponse.accessToken;
ApiClient.instance().refreshToken = _loginResponse.refreshToken;
// retry this request? (call request again)
}
}
return super.onError(err, handler);
}
Can I in onError method retry request and in one place to do refresh token or do I have to do a refresh token on each request?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
