Refresh CSRF token and retry API call

This commit is contained in:
kilowatt 2020-10-24 00:00:37 +03:00
parent df3b7d3d63
commit a77bfc6277
3 changed files with 11 additions and 5 deletions

View file

@ -47,6 +47,7 @@ class DeezerAPI {
});
//Post
http.Response res = await http.post(uri, headers: headers, body: jsonEncode(params));
dynamic body = jsonDecode(res.body);
//Grab SID
if (method == 'deezer.getUserData') {
for (String cookieHeader in res.headers['set-cookie'].split(';')) {
@ -55,8 +56,11 @@ class DeezerAPI {
}
}
}
return jsonDecode(res.body);
// In case of error "Invalid CSRF token" retrieve new one and retry the same call
if (body['error'].isNotEmpty && body['error'].containsKey('VALID_TOKEN_REQUIRED') && await rawAuthorize()) {
return callApi(method, params: params, gatewayInput: gatewayInput);
}
return body;
}
Future<Map<dynamic, dynamic>> callPublicApi(String path) async {