authorize method
Called to authorize a request if the request requires authentication.
Returning true means the request should be authorized, false means authorization failed.
Implementation
@override
Future<bool> authorize() async {
if (isValidAuth) {
return true;
}
if (!_isAuthExpiried &&
!_hasValidatedOnce &&
!isNullOrEmpty(_encryptedAccessToken)) {
return validate();
}
final response = await _client!.post<dynamic>(
baseUrl.replace(path: 'wp-json/jwt-auth/v1/token').toString(),
data: {
'username': userName,
'password': password,
},
options: Options(
method: HttpMethod.post.name,
contentType: 'application/x-www-form-urlencoded',
followRedirects: true,
maxRedirects: 10,
),
);
if (response.statusCode != 200 || response.data == null) {
return false;
}
events?.onResponse?.call(response.data);
if (response.data['data'] == null || !(response.data['success'] as bool)) {
return false;
}
_encryptedAccessToken = response.data?['data']?['token'] as String?;
if (_encryptedAccessToken != null) {
_lastAuthorizedTime = DateTime.now();
}
return _hasValidatedOnce = !isNullOrEmpty(_encryptedAccessToken);
}