The /oauth2/revoke endpoint throws {"__type":"UnknownOperationException"}

0

Im trying to invalidate refresh token using The /oauth2/revoke endpoint. But the /oauth2/revoke endpoint throws {"__type":"UnknownOperationException"} https://docs.aws.amazon.com/cognito/latest/developerguide/revocation-endpoint.html

var axios = require("axios").default;

var options = { method: 'POST', url: 'https://{yourDomain}/oauth/revoke', headers: {'content-type': 'application/json'}, data: { client_id: '{yourClientId}', token: '{yourRefreshToken}' } };

axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });

Minaxi
已提問 1 個月前檢視次數 293 次
2 個答案
1

The data payload should be URL-encoded, not JSON. You can use the querystring module to encode your data:

var axios = require("axios").default;
var querystring = require('querystring');

var data = querystring.stringify({
    client_id: '{yourClientId}',
    token: '{yourRefreshToken}',
    token_type_hint: 'refresh_token' // Optional, but recommended
});

var options = {
    method: 'POST',
    url: 'https://{yourDomain}/oauth2/revoke',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: data
};

axios.request(options).then(function (response) {
    console.log(response.data);
}).catch(function (error) {
    console.error(error);
});

Key Source:

profile picture
專家
已回答 1 個月前
profile picture
專家
已審閱 1 個月前
0

Hi,

The request content type is not correct, you must use application/x-www-form-urlencoded instead of application/json.

Take a look at the following example from the AWS documentation:

  POST /oauth2/revoke HTTP/1.1
        Host: https://mydomain.auth.us-east-1.amazoncognito.com
        Accept: application/json
        Content-Type: application/x-www-form-urlencoded
        token=2YotnFZFEjr1zCsicMWpAA&
        client_id=djc98u3jiedmi283eu928
profile picture
專家
已回答 1 個月前
  • this gives me response {"code":"BadRequest","message":"The server did not understand the operation that was requested.","type":"client"}

  • Have you updated the body parameters to send them according to the new Content-Type and not as JSON?

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南