【发布时间】:2020-08-02 23:25:24
【问题描述】:
由于 Google 用于撤销令牌的 OAuth 2.0 端点不支持 CORS,并且应由 POST 提出请求,他们建议使用表单并将其提交到端点而不是使用 @987654323 @方法发布请求。
OAuth 2.0 for Client Web Applications / revoke 文档状态:
如果调用成功,则响应状态码将为 200。对于错误情况,HTTP 状态码将为 400。
但是通过在 Web 客户端上仅使用 js 我如何确定请求是成功还是失败?
我尝试将结果加载到弹出窗口但因为它使用不同的来源,所以存在 CORS 问题。并且内容不能被JS访问,也不能监听load或error事件。
或者一般来说,如何向不受支持的 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();
}
【问题讨论】:
标签: javascript oauth-2.0 google-oauth google-signin revoke-token