authenticate method
Implementation
@override
Future<Response<AuthenticationResponse>> authenticate(
LoginModel model) async {
try {
var data = {
"Username": model.username,
"Password": model.password,
};
final http.Response loginResponse = await http.post(
Uri.parse(config.loginUrl),
headers: {"content-type": "application/json"},
body: jsonEncode(data),
);
if (loginResponse.statusCode != 200)
return Response.error(
"Unexpected Error Has Occured!\n" +
"STATUS CODE: ${loginResponse.statusCode}\n" +
"${loginResponse.reasonPhrase}",
);
var response =
AuthenticationResponse.fromJson(jsonDecode(loginResponse.body));
if (!response.isSuccess) return Response.error(response.errorMessage);
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(),
);
await _secureStorage.write(
key: _userInfoKey,
value: jsonEncode(response.userInfo.asJson),
);
await _secureStorage.write(key: _usernameKey, value: model.username);
await _secureStorage.write(key: _passwordKey, value: model.password);
return Response.success(response);
} catch (e) {
return Response.error(
"Unexpected error has occured while authetication ... \n\n" +
e.toString(),
);
}
}