getCSRFToken method
request CSRF token from server
Implementation
Future<String?> getCSRFToken({bool forceNew = false}) async {
// 1, get from cache first
if (!forceNew) {
final cachedToken = await _tokenCache.getCSRFToken();
if (cachedToken != null && cachedToken.isNotEmpty) {
return cachedToken;
}
}
// 2, if no cache, fetch from server then cache it
try {
final url = apiBaseUrl(_config.domain, _config.authBasePath, 'csrf');
final response = await _config.httpClient.get(
url,
options: HttpClientOptions(contentType: 'application/json'),
);
await _cacheCSRFCookieFromHeaders(response);
return await _tokenCache.getCSRFToken();
} catch (e) {
logger?.error('getCSRFToken error', e);
return null;
}
}