我正在使用angularx-social-login通过Google验证用户身份。
这样检索令牌:
https://accounts.google.com/o/oauth2/iframerpc?action=issueToken&response_type=token%20id_token&login_hint=LOGIN_HINT&client_id=CLIENT_ID&origin=http%3A%2F%2Flocalhost%3A4200&scope=openid%20profile%20email&ss_domain=http%3A%2F%2Flocalhost%3A4200
响应是一个JSON对象,访问令牌是responseData.access_token
。
[对于撤销,我首先下载https://accounts.google.com/.well-known/openid-configuration,找到撤销端点为https://oauth2.googleapis.com/revoke?token=TOKEN,然后单击https://developers.google.com/identity/protocols/OAuth2WebServer#tokenrevoke(在示例框中选择选项卡HTTP / REST),我通过以下方式发送请求:
curl -D- -H "Content-type:application/x-www-form-urlencoded" "https://oauth2.googleapis.com/revoke?token=TOKEN"
但是我没有获得成功的答复:
HTTP/1.1 404 Not Found
Date: Thu, 16 Jan 2020 18:07:59 GMT
Content-Type: text/html; charset=UTF-8
Server: ESF
Content-Length: 1710
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
响应的主体包含类似“在此服务器上找不到所请求的URL...。这就是我们所知道的全部。”
我已经尝试过使用DELETE
或POST
,或将Authorize
标头中的令牌作为不记名的令牌而不是查询参数,但无济于事;响应始终是相同的。
出了什么问题?
POST命令可撤销。请尝试使用以下curl命令:
curl -d -X -POST'https://oauth2.googleapis.com/revoke?token=PUT_TOKEN_HERE'--header'Content-Type:application / x-www-form-urlencoded'