TF-571 Update token for interceptors dio

This commit is contained in:
dab246
2022-05-20 16:05:14 +07:00
committed by Dat H. Pham
parent 4804a1659a
commit ea598c20b8
9 changed files with 42 additions and 25 deletions
@@ -0,0 +1,32 @@
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:model/model.dart';
class AuthorizationInterceptors extends InterceptorsWrapper {
String? _authorization;
Token? _token;
void changeAuthorization(String? userName, String? password) {
_authorization = base64Encode(utf8.encode('$userName:$password'));
}
void setToken(Token? newToken) {
_token = newToken;
}
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
if (_authorization != null) {
options.headers[HttpHeaders.authorizationHeader] = _getAuthorizationAsBasicHeader(_authorization);
} else if (_token != null && _token?.isTokenValid() == true) {
options.headers[HttpHeaders.authorizationHeader] = _getTokenAsBearerHeader(_token!.token);
}
super.onRequest(options, handler);
}
String _getAuthorizationAsBasicHeader(String? authorization) => 'Basic $authorization';
String _getTokenAsBearerHeader(String token) => 'Bearer $token';
}