mirror of
https://github.com/astuto/astuto.git
synced 2025-12-15 11:17:49 +01:00
- Added Site settings > Authentication section - Create/edit/delete your custom oauth2 configurations - Login or signup with oauth2
31 lines
869 B
Ruby
31 lines
869 B
Ruby
class OAuth < ApplicationRecord
|
|
include TenantOwnable
|
|
include ApplicationHelper
|
|
include Rails.application.routes.url_helpers
|
|
|
|
attr_accessor :state
|
|
|
|
validates :name, presence: true, uniqueness: { scope: :tenant_id }
|
|
validates :is_enabled, inclusion: { in: [true, false] }
|
|
validates :client_id, presence: true
|
|
validates :client_secret, presence: true
|
|
validates :authorize_url, presence: true
|
|
validates :token_url, presence: true
|
|
validates :profile_url, presence: true
|
|
validates :scope, presence: true
|
|
validates :json_user_email_path, presence: true
|
|
|
|
def callback_url
|
|
add_subdomain_to(method(:o_auth_callback_url), id)
|
|
end
|
|
|
|
def authorize_url_with_query_params
|
|
"#{authorize_url}?"\
|
|
"response_type=code&"\
|
|
"client_id=#{client_id}&"\
|
|
"redirect_uri=#{callback_url()}&"\
|
|
"scope=#{scope}&"\
|
|
"state=#{state}"
|
|
end
|
|
end
|