feat: separate scope methods

This commit is contained in:
Shivam Mishra
2025-06-02 19:51:32 +05:30
parent 12957b7438
commit a7aae69229
5 changed files with 13 additions and 7 deletions
@@ -5,7 +5,7 @@ class Api::V1::Accounts::Google::AuthorizationsController < Api::V1::Accounts::O
redirect_url = google_client.auth_code.authorize_url(
{
redirect_uri: "#{base_url}/google/callback",
scope: 'email profile https://mail.google.com/',
scope: scope,
response_type: 'code',
prompt: 'consent', # the oauth flow does not return a refresh token, this is supposed to fix it
access_type: 'offline', # the default is 'online'
@@ -5,7 +5,7 @@ class Api::V1::Accounts::Microsoft::AuthorizationsController < Api::V1::Accounts
redirect_url = microsoft_client.auth_code.authorize_url(
{
redirect_uri: "#{base_url}/microsoft/callback",
scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid profile',
scope: scope,
state: state,
prompt: 'consent'
}
@@ -1,6 +1,12 @@
class Api::V1::Accounts::OauthAuthorizationController < Api::V1::Accounts::BaseController
before_action :check_authorization
protected
def scope
''
end
def state
Current.account.to_sgid(expires_in: 15.minutes).to_s
end
@@ -14,4 +20,4 @@ class Api::V1::Accounts::OauthAuthorizationController < Api::V1::Accounts::BaseC
def check_authorization
raise Pundit::NotAuthorizedError unless Current.account_user.administrator?
end
end
end
+2 -2
View File
@@ -14,7 +14,7 @@ module GoogleConcern
private
def base_url
ENV.fetch('FRONTEND_URL', 'http://localhost:3000')
def scope
'email profile https://mail.google.com/'
end
end
@@ -15,7 +15,7 @@ module MicrosoftConcern
private
def base_url
ENV.fetch('FRONTEND_URL', 'http://localhost:3000')
def scope
'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid profile'
end
end