Как получить обратный вызов успеха/неудачи для запроса на отзыв с помощью REST API Google OAuth2?

Поскольку конечная точка Google OAuth 2.0 для отзыва токенов не поддерживает CORS, а запрос должен быть сделан POST, они предлагают использовать форму и отправить ее в конечную точку, а не использовать метод Ajax для публикации запроса.

OAuth 2.0 для клиентских веб-приложений / отозвать состояние документации :

Если вызов выполнен успешно, код состояния ответа будет 200. В случае ошибки код состояния HTTP будет 400.

Но тогда, используя только js на веб-клиенте, как я могу определить, был ли запрос успешным или неудачным?

Я пытаюсь загрузить результат во всплывающие окна. Но поскольку он использует другое происхождение, возникает проблема CORS. и JS не может получить доступ к содержимому, а также не может прослушивать события load или error.

Или вообще, как сделать запрос POST к неподдерживаемому источнику CORS и узнать, был ли он успешным или неудачным

function revokeAccess(accessToken) {
  // Google's OAuth 2.0 endpoint for revoking access tokens.
  var revokeTokenEndpoint = 'https://oauth2.googleapis.com/revoke';

  // Create <form> element to use to POST data to the OAuth 2.0 endpoint.
 var form = document.createElement('form');
    form.method = method;
    form.action = src;
    form.target = 'oauthWindow';
    for (let k in obj) {
        var tokenField = document.createElement('input');
        tokenField.type = 'hidden';
        tokenField.name = k;
        tokenField.value = obj[k];
        form.appendChild(tokenField);
    }

    document.body.appendChild(form);
    form.submit();  
 }

person pery mimon    schedule 20.04.2020    source источник


Ответы (1)


Просто знайте, если запрос success из fail сделает это:

  await fetch(authSetting.revoke_endpoint, {
        method: 'POST',
        mode: 'no-cors',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: `token=${payload.access_token}`
    });

режим no-cors, пусть запрос выходит, но скрывает ответ. но вы все равно знаете, если это success из fail. префект

person pery mimon    schedule 21.04.2020