Как да получите успешно/неуспешно обратно извикване за заявка за „отмяна“ с Google OAuth2 REST API?

Тъй като крайната точка OAuth 2.0 на Google за отмяна на токени не поддържа 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