devise-doorkeeper | Integrate Doorkeeper OAuth2 tokens into Devise applications | OAuth library
kandi X-RAY | devise-doorkeeper Summary
kandi X-RAY | devise-doorkeeper Summary
Integrate Doorkeeper OAuth2 tokens into Devise applications
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of devise-doorkeeper
devise-doorkeeper Key Features
devise-doorkeeper Examples and Code Snippets
Community Discussions
Trending Discussions on devise-doorkeeper
QUESTION
I have a Rails 6.1 app using devise 4.7.1, doorkeeper 5.5.1, and devise-doorkeeper 1.2.0.
I'm trying to run through a (PKCE) OAuth flow, but the final step -- a POST request to /oauth/token
-- returns a 401 Unauthorized error with the JSON content {"error": "You need to sign in or sign up before continuing."}
.
I'm confused about this, since the /oauth/token
endpoint should be accessible to unauthenticated users as far as I understand. What's also weird (but perhaps a red herring) is that if I attempt to run the same POST request with curl, but remove the User-Agent header, it succeeds.
My current suspect is this block of code in initializers/doorkeeper.rb
:
ANSWER
Answered 2021-May-05 at 19:47This problem was caused by our use of the Ahoy analytics library.
By default, this library tracks all page visits in your Rails app. It tries to get the current user using current_user || current_resource_owner
. Because current_user
was still nil when POSTing to /oauth/token
, getting current_resource_owner
ended up calling our Doorkeeper resource_owner_authenticator
, which returned the 401 error. The source code for this is here.
This also explains why things worked as expected when unsetting the User-Agent
header: with no user agent (or the user agent of e.g. curl), Ahoy treats the request as coming from a bot, and doesn't attempt to track it (source code here).
Our solution to this is to tell Ahoy to stop tracking all page views automatically by setting Ahoy.api_only = true
in its configuration.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install devise-doorkeeper
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page