Untitled
unknown
dart
a year ago
1.4 kB
7
Indexable
Future<String> handleRefreshToken(String token) async {
if (authBloc.userDataModel != null) {
final DateTime expiresToken =
DateTime.parse(authBloc.userDataModel!.expiresToken);
final DateTime date2 = DateTime.now().toUtc();
final bool difference = date2.difference(expiresToken).isNegative;
if (!difference) {
Map<String, dynamic> body = <String, dynamic>{
'refreshToken': authBloc.userDataModel!.refreshToken
};
final Response response = await http.post(
Uri.parse(Urls.refreshToken),
body: json.encode(body),
headers: headersRequest,
);
if (response.statusCode == 401) {
logout();
}
Map<String, dynamic> newToken =
json.decode(response.body) as Map<String, dynamic>;
debugPrint(newToken.toString());
authBloc.userDataModel = UserData.copyWith(
oldData: authBloc.userDataModel!,
accessToken: newToken['access']['token'] as String,
expiresToken: newToken['access']['expires'] as String,
refreshToken: newToken['refresh']['token'] as String,
);
await authBloc.persistUser(user: authBloc.userDataModel!);
return newToken['access']['token'] as String;
}
return token;
} else {
return token;
}
}Editor is loading...
Leave a Comment