Описание:
Я генерирую токен доступа к паролю OAUTH2, используя идентификатор клиента и секрет клиента моего поставщика услуг в диспетчере API wso2. Поставщик услуг автоматически создается для приложения, из которого я подписал свой API на портале разработчика wso2. Кроме того, я могу получить доступ к своему API, используя этот токен доступа. Но когда я пытаюсь отозвать токен доступа, я получаю статус HTTP 200, и он показывает отозванный токен доступа и отозванный токен refre sh. Но токен все еще работает, чего не должно происходить. После отзыва токена при использовании этого токена в качестве заголовка моего вызова API он должен ответить Неверные учетные данные.
команда, которую я использую для создания моего токена доступа:
curl -u Client-Id:Client-Secret -k -d "grant_type=password&username=user&password=userpassword" -H "Content-Type:application/x-www-form-urlencoded" https://my-domain:8243/token
ПРИМЕЧАНИЕ. заменил Client-Id, Client-Secret, user, userpassword и my-domain на фактические значения.
OUTPUT:
{
"access_token": "access-token",
"refresh_token": "refresh-token",
"scope": "default",
"token_type": "Bearer",
"expires_in": 3600
}
Я использую свой API через портал разработчика wso2 с помощью параметра Try_Out в API wso2 devportal.
Команда для отзыва токена доступа:
curl -u Client-Id:Client-Secret -k -v -d "token=access-token" -H "Content-Type: application/x-www-form-urlencoded" https://my-domain:8243/revoke
ПРИМЕЧАНИЕ. Здесь я заменил Client-Id, Client-Secret, access-token и my-domain с фактическими значениями.
OUTPUT:
* Trying my-domian...
* TCP_NODELAY set
* Connected to my-domian (my-domian) port 8243 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: C=US; ST=CA; L=Mountain View; O=WSO2; OU=WSO2; CN=localhost
* start date: Oct 23 07:30:43 2019 GMT
* expire date: Jan 25 07:30:43 2022 GMT
* issuer: C=US; ST=CA; L=Mountain View; O=WSO2; OU=WSO2; CN=localhost
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Server auth using Basic with user 'uovufrsBHEv8KTUVtVYpWLUuYz8a'
> POST /revoke HTTP/1.1
> Host: my-domian:8243
> Authorization: Basic base64(Client-Id:Client-Secret)
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 1417
> Expect: 100-continue
> < HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 200
< X-Frame-Options: DENY
< RevokedRefreshToken: refresh-token
< Cache-Control: no-store
< X-Content-Type-Options: nosniff
< AuthorizedUser: admin@carbon.super
< Pragma: no-cache
< RevokedAccessToken: access-token
< X-XSS-Protection: 1; mode=block
< Content-Type: text/html
< Date: Fri, 29 May 2020 17:30:08 GMT
< Transfer-Encoding: chunked
<
* Connection #0 to host my-domian left intact
Здесь, в Revoked access Token, отображается правильный токен. Но даже после этого я могу получить доступ к своему API, используя этот токен доступа на портале разработчика wso2, используя параметр Try_Out для API.
Может ли кто-нибудь подсказать, что мне не хватает или что я делаю неправильно? А также, если есть другой способ отозвать токен доступа, так что после отзыва токен доступа больше не действителен.
ПРИМЕЧАНИЕ. Я внес изменения только в свой файл deployment.toml: я раскомментировал [[apim.token .revocation]] блок.