Skip to content

Allow revoking access token without revoking refresh token #748

@apexskier

Description

@apexskier

Preflight checklist

Describe your problem

We'd like to be able to revoke an individual access token without revoking a refresh token.

The spec says:

If the token passed to the request is an access token, the server MAY revoke the respective refresh token as well.

Currently, fosite revokes both access and refresh tokens on any token revocation:

err1 = r.TokenRevocationStorage.RevokeRefreshToken(ctx, requestID)
err2 = r.TokenRevocationStorage.RevokeAccessToken(ctx, requestID)

This effectively means we cannot revoke an access token if using refresh tokens, since it makes the refresh token useless.

Describe your ideal solution

Ideally, we'd like the token revocation endpoint to not revoke refresh tokens when an access token is revoked.

Alternatively, it would work if we could to configure this behavior (either globally for our hydra instance or with an additional parameter to the revocation endpoint).

Workarounds or alternatives

We're not revoking access tokens where we'd like to be right now.

Another alternative would be to expose an admin endpoint in ory/hydra to revoke just access tokens.

Version

oryd/hydra:v2.1.1

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    featNew feature or request.staleFeedback from one or more authors is required to proceed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions