У меня есть веб-приложение, которое использует Oauth и не может повторно использовать authToken из-за ошибки ниже.
{"AADSTS70002: Error validating credentials. AADSTS54005: OAuth2 Authorization
code was already redeemed, please retry with a new valid code or use an
existing refresh token.\r\nTrace ID: 30c342a7-f16a-4a05-a4a8-
c7ee2c722300\r\nCorrelation ID: 3a5c99d1-ca1c-4cd7-bd36-
cce721bf05b6\r\nTimestamp: 2018-11-21 00:26:18Z"}
Мне сказали, что это известная проблема / обновление здесь и здесь .... хорошо, хорошо, так что теперь я пытаюсь получить токен обновления, чтобы я мог восстановить свой токен доступа, но у меня возникают проблемы с получением чего-то для работы.
Я попробовал те из них ниже: https://docs.microsoft.com/en-us/bingads/shopping-content/code-example-authentication-oauth - этот, похоже, не работает и выдает исключение, когда я пытаюсь получить токен доступа или обновить токен.сообщая, что произошла одна или несколько ошибок.
https://auth0.com/docs/api/authentication#authorization-code-pkce- - но не возвращает токен обновления.Может ли это быть потому, что у меня нет code_verifier?Если да, то как мне это получить?
Код авторизации (PKCE) Изображение
Ниже приведен пример кода, который я использую - проблема здесь в том, что я могу толькоиспользуйте его один раз и один раз. Он был восстановлен. Я не могу получить его снова, так как он больше не существует в кэше.
ClientCredential clientcred = new ClientCredential(Constants.ClientId, Constants.AppKey);
TokenCache TC = new TokenCache();
AuthenticationContext AC = new AuthenticationContext(Constants.Authority, TC);
//Set token from authentication result
AuthenticationResult authenticationResult = await AC.AcquireTokenByAuthorizationCodeAsync(
Constants.Code,
new Uri(Constants.postLogoutRedirectUri + "Index"), clientcred);
return authenticationResult.AccessToken;