refreshToken method
Implementation
@override
Future<Response<AuthenticationResponse>> refreshToken() async {
try {
var authDataResponse = await getAuthData();
if (!authDataResponse.isSuccess!)
return Response.error(authDataResponse.errorMessage);
var data = {"RefreshToken": authDataResponse.value!.refreshToken};
final http.Response refreshTokenResponse = await http.post(
Uri.parse(config.refreshTokenUrl),
headers: {
"content-type": "application/json",
"Authorization": "Bearer ${authDataResponse.value!.token}"
},
body: jsonEncode(data),
);
if (refreshTokenResponse.statusCode != 200)
return Response.error(
"Unexpected Error Has Occured!\n" +
"STATUS CODE: ${refreshTokenResponse.statusCode}\n" +
"${refreshTokenResponse.reasonPhrase}",
);
var response = RefreshTokenResponse.fromJson(
jsonDecode(refreshTokenResponse.body),
);
await _secureStorage.write(key: _tokenKey, value: response.token);
await _secureStorage.write(
key: _refreshTokenKey,
value: response.refreshToken,
);
await _secureStorage.write(
key: _tokenExpireDateKey,
value: response.tokenExpireDate!.millisecondsSinceEpoch.toString(),
);
authDataResponse.value!.token = response.token!;
authDataResponse.value!.refreshToken = response.refreshToken!;
authDataResponse.value!.tokenExpireDate = response.tokenExpireDate!;
return authDataResponse;
} catch (e) {
return Response.error(e.toString());
}
}