Я получаю эту ошибку при обновлении токена доступа: токен доступа не может быть обновлен. Пожалуйста, подтвердите заново
Об этой ошибке ранее сообщалось в апреле 2017 года. В документации OneLogin указано, что токен обновления действителен в течение 45 дней или около того. Моему токену обновления было около 20 часов. Правильный ли документ или у токена обновления более короткий срок жизни? Я могу получить токен доступа и отозвать токен в порядке.
общедоступный RootObject RefreshToken (HttpRequesterDM rDM) {RestSharp.Deserializers.JsonDeserializer deserial = new RestSharp.Deserializers.JsonDeserializer (); var client = new RestClient ("https://api.us.onelogin.com/auth/oauth2/token "); var request = new RestRequest (Method.POST); строка clientAuth = $ "client_id: {rDM.ClientID}, client_secret: {rDM.ClientSecret}"; строка accessToken = DSBase.AccessToken; строка refreshToken = DSBase.refreshToken; request.AddHeader («контроль кеширования», «без кеширования»); request.AddHeader ("тип содержимого", "приложение / json"); request.RequestFormat = DataFormat.Json; request.AddParameter ("application / json", "{\ n \" grant_type \ ": \" refresh_token \ "\ n}", ParameterType.RequestBody); request.AddHeader («авторизация», clientAuth);
request.AddParameter("application/json", "{\n\"access_token\":\" + accessToken + \"\n}", ParameterType.RequestBody);
request.AddParameter("application/json", "{\n\"refresh_token\":\" + refreshToken + \"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
RootObject returnData = deserial.Deserialize<RootObject>(response);
if (returnData.status.message == "Access token cannot be refreshed. Please re-authenticate")
{
RootObject rObject = GetToken(rDM);
return rObject;
}
if (returnData.data[0].access_token != null)
{
access = returnData.data[0].access_token; //This correctly gets the Access Token. You should return this to a class variable so that all the other functions can access it easily and you're not constantly passing along the variable through them.
}
return returnData;