You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our ResourceServer is a separate application from the AuthorizationServer, so we can't modify our controllers to invoke doorkeeper_authorize!. Instead, we call token/introspect on provided tokens. The RS is itself a client application; it uses client_credentials and has a special introspect scope to allow it to examine tokens issued by any other client. We noticed that revoke-on-use does not happen as it would if we could use the provided doorkeeper_authorize! action helper.
Expected behavior
Calling token/introspect on a token should have the same behavior as doorkeeper_authorize! has on it.
Actual behavior
The tokens aren't revoked, and we don't know what's the appropriate path to create portable behavior that is identical to doorkeeper_authorize!
System configuration
Here's a diff that adds a new example for the TokensController
diff --git a/spec/controllers/tokens_controller_spec.rb b/spec/controllers/tokens_controller_spec.rb
index de0088b6..eb55fb1f 100644
--- a/spec/controllers/tokens_controller_spec.rb
+++ b/spec/controllers/tokens_controller_spec.rb
@@ -496,6 +496,18 @@ RSpec.describe Doorkeeper::TokensController, type: :controller do
)
end
+ it "revokes the previous refresh_token of the token being introspected" do
+ previous_token = FactoryBot.create(:access_token, refresh_token: "refresh_token")
+ token_for_introspection.previous_refresh_token = previous_token.refresh_token
+ token_for_introspection.save!
+
+ request.headers["Authorization"] = "Bearer #{access_token.token}"
+
+ post :introspect, params: { token: token_for_introspection.token }
+
+ expect(previous_token.reload).to be_revoked
+ end
+
it "responds with invalid_token error if authorized token doesn't have introspection scope" do
access_token.update(scopes: "read write")
The text was updated successfully, but these errors were encountered:
Steps to reproduce
Our ResourceServer is a separate application from the AuthorizationServer, so we can't modify our controllers to invoke
doorkeeper_authorize!
. Instead, we calltoken/introspect
on provided tokens. The RS is itself a client application; it usesclient_credentials
and has a specialintrospect
scope to allow it to examine tokens issued by any other client. We noticed that revoke-on-use does not happen as it would if we could use the provideddoorkeeper_authorize!
action helper.Expected behavior
Calling
token/introspect
on a token should have the same behavior asdoorkeeper_authorize!
has on it.Actual behavior
The tokens aren't revoked, and we don't know what's the appropriate path to create portable behavior that is identical to
doorkeeper_authorize!
System configuration
Here's a diff that adds a new example for the TokensController
The text was updated successfully, but these errors were encountered: