Story #3163
closedAs a user, I can refresh an unexpired JWT.
0%
Description
django-rest-framework-jwt provides a 'JWT_ALLOW_REFRESH' setting in settings.py. It defaults to False. The server.yaml and settings.py need to be updated to include this setting with the default value.
The REST API endpoint provided by django-rest-framework-jwt for refreshing the token does not support indefinitely refreshing tokens. Pulp needs to support allowing users to refresh unexpired tokens for an indefinite amount of time. As a result, a view for refreshing a JWT needs to be implemented. The view should be exposed at /api/v3/jwt_refresh/. If JWT_ALLOW_REFRESH is True, a POST request with the JWT auth header returns a new JWT with a new expiration date. The response should look like the following:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTAyMzgzMDExfQ.3ZpcclxV6hN8ui2HUbwXLJsHl2lhesiCPeDVV2GIbJg"
}
If JWT_ALLOW_REFRESH is set to False, a POST to the endpoint should return a 401 with a message stating the the JWT refresh is not allowed.
Documentation for the REST API needs to be updated with info on refreshing a JWT.
A new Usage section needs to be added to be used by Pulp Admins. These settings need to be documented there.
Related issues
Updated by bmbouter about 7 years ago
I expected that JWT renewal would not have a 7 day limit, but instead it could renew forever when JWT_ALLOW_REFRESH=True. I also thought that only the JWT_ALLOW_REFRESH would be in the settings.py and the JWT_REFRESH_EXPIRATION_DELTA would not be.
Updated by daviddavis about 7 years ago
- Related to Issue #3164: Requesting a JWT token doesn't support basic auth added
Updated by daviddavis about 7 years ago
- Status changed from NEW to CLOSED - WONTFIX
JWT got removed from the MVP. Going to revisit again in 3.1+ with new user stories.