如何使用Google OAuth2 REST API获得"撤销"请求的成功/失败回调?



由于Google用于撤销令牌的OAuth 2.0端点不支持CORS,因此应通过POST提出请求,他们建议使用表单并将其提交给端点,而不是使用Ajax方法来发布请求。

适用于客户端 Web 应用程序的 OAuth 2.0/撤销文档状态:

如果调用成功,则响应状态代码将为 200。对于错误情况,HTTP 状态代码将为 400。

但是,通过在Web客户端上仅使用js,我如何确定请求是成功还是失败

我尝试将结果加载到弹出窗口 但是因为它使用不同的来源,所以存在 CORS 问题。 并且 JS 无法访问内容,也无法侦听loaderror事件。

或者一般来说,如何向不受支持的 CORS 源发出 POST 请求并知道它是否成功失败

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();  
}

只要知道fail的请求success是否这样做:

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模式,让请求出去但隐藏响应。 但你仍然知道它是否successfail. 完善

最新更新