mirror of
https://github.com/mastodon/mastodon.git
synced 2025-11-27 18:10:58 +00:00
Try to fix the usage of doorkeeper configuration
This commit is contained in:
parent
1af6ae19b9
commit
463d5dd4d5
|
|
@ -65,12 +65,22 @@ class SessionActivation < ApplicationRecord
|
|||
end
|
||||
|
||||
def access_token_attributes
|
||||
app = Doorkeeper::Application.find_by(superapp: true)
|
||||
scopes = Doorkeeper::OAuth::Scopes.from_array(DEFAULT_SCOPES)
|
||||
|
||||
context = Doorkeeper::OAuth::Authorization::Token.build_context(
|
||||
app,
|
||||
Doorkeeper::OAuth::AUTHORIZATION_CODE,
|
||||
scopes,
|
||||
user_id
|
||||
)
|
||||
|
||||
{
|
||||
application_id: Doorkeeper::Application.find_by(superapp: true)&.id,
|
||||
resource_owner_id: user_id,
|
||||
scopes: DEFAULT_SCOPES.join(' '),
|
||||
expires_in: Doorkeeper.configuration.access_token_expires_in,
|
||||
use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?,
|
||||
application_id: context.client,
|
||||
resource_owner_id: context.resource_owner,
|
||||
scopes: context.scopes,
|
||||
expires_in: Doorkeeper::OAuth::Authorization::Token.access_token_expires_in(Doorkeeper.config, context),
|
||||
use_refresh_token: Doorkeeper::OAuth::Authorization::Token.refresh_token_enabled?(Doorkeeper.config, context),
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -310,10 +310,12 @@ class User < ApplicationRecord
|
|||
def token_for_app(app)
|
||||
return nil if app.nil? || app.owner != self
|
||||
|
||||
Doorkeeper::AccessToken.find_or_create_by(application_id: app.id, resource_owner_id: id) do |t|
|
||||
t.scopes = app.scopes
|
||||
t.expires_in = Doorkeeper.configuration.access_token_expires_in
|
||||
t.use_refresh_token = Doorkeeper.configuration.refresh_token_enabled?
|
||||
context = Doorkeeper::OAuth::Authorization::Token.build_context(app, Doorkeeper::OAuth::AUTHORIZATION_CODE, app.scopes, app.owner)
|
||||
|
||||
Doorkeeper::AccessToken.find_or_create_by(application_id: context.client.id, resource_owner_id: context.resource_owner.id) do |t|
|
||||
t.scopes = context.scopes
|
||||
t.expires_in = Doorkeeper::OAuth::Authorization::Token.access_token_expires_in(Doorkeeper.config, context)
|
||||
t.use_refresh_token = Doorkeeper::OAuth::Authorization::Token.refresh_token_enabled?(Doorkeeper.config, context)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -27,12 +27,14 @@ class AppSignUpService < BaseService
|
|||
end
|
||||
|
||||
def create_access_token!
|
||||
context = Doorkeeper::OAuth::Authorization::Token.build_context(@app, Doorkeeper::OAuth::AUTHORIZATION_CODE, @app.scopes, @user.id)
|
||||
|
||||
@access_token = Doorkeeper::AccessToken.create!(
|
||||
application: @app,
|
||||
resource_owner_id: @user.id,
|
||||
scopes: @app.scopes,
|
||||
expires_in: Doorkeeper.configuration.access_token_expires_in,
|
||||
use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
|
||||
application: context.client,
|
||||
resource_owner_id: context.resource_owner,
|
||||
scopes: context.scopes,
|
||||
expires_in: Doorkeeper::OAuth::Authorization::Token.access_token_expires_in(Doorkeeper.config, context),
|
||||
use_refresh_token: Doorkeeper::OAuth::Authorization::Token.refresh_token_enabled?(Doorkeeper.config, context)
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,10 @@ Doorkeeper.configure do
|
|||
end
|
||||
end
|
||||
|
||||
use_refresh_token do |context|
|
||||
context.scopes.exists?('offline_access')
|
||||
end
|
||||
|
||||
# Use a custom class for generating the access token.
|
||||
# https://github.com/doorkeeper-gem/doorkeeper#custom-access-token-generator
|
||||
# access_token_generator "::Doorkeeper::JWT"
|
||||
|
|
|
|||
|
|
@ -30,12 +30,19 @@ RSpec.describe Oauth::AuthorizationsController do
|
|||
|
||||
context 'when app is already authorized' do
|
||||
before do
|
||||
context = Doorkeeper::OAuth::Authorization::Token.build_context(
|
||||
app,
|
||||
Doorkeeper::OAuth::AUTHORIZATION_CODE,
|
||||
app.scopes,
|
||||
user.id
|
||||
)
|
||||
|
||||
Doorkeeper::AccessToken.find_or_create_for(
|
||||
application: app,
|
||||
resource_owner: user.id,
|
||||
scopes: app.scopes,
|
||||
expires_in: Doorkeeper.configuration.access_token_expires_in,
|
||||
use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
|
||||
application: context.client,
|
||||
resource_owner: context.resource_owner,
|
||||
scopes: context.scopes,
|
||||
expires_in: Doorkeeper::OAuth::Authorization::Token.access_token_expires_in(Doorkeeper.config, context),
|
||||
use_refresh_token: Doorkeeper::OAuth::Authorization::Token.refresh_token_enabled?(Doorkeeper.config, context)
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user