CI / Test (pull_request) Successful in 41s
- Add user_agent to remote_storage_authorizations and rs_authorization_codes - Capture the browser's user agent at consent, carry it on the authorization code, and store it on the authorization when the code is exchanged - Store it directly for the implicit flow too With the reuse shortcut gone, each authorization is already a distinct per-device token; this adds the metadata needed to label and display them. Part of #254
30 lines
895 B
Ruby
30 lines
895 B
Ruby
module RsOauthManager
|
|
class IssueCode < RsOauthManagerService
|
|
def initialize(user:, client_id:, redirect_uri:, permissions:,
|
|
code_challenge:, code_challenge_method: "S256",
|
|
expire_at: nil, user_agent: nil)
|
|
@user = user
|
|
@client_id = client_id
|
|
@redirect_uri = redirect_uri
|
|
@permissions = permissions
|
|
@code_challenge = code_challenge
|
|
@code_challenge_method = code_challenge_method
|
|
@expire_at = expire_at
|
|
@user_agent = user_agent
|
|
end
|
|
|
|
def call
|
|
RsAuthorizationCode.create!(
|
|
user: @user,
|
|
client_id: @client_id,
|
|
redirect_uri: @redirect_uri,
|
|
permissions: @permissions,
|
|
permission_expire_at: @expire_at,
|
|
user_agent: @user_agent,
|
|
code_challenge: @code_challenge,
|
|
code_challenge_method: @code_challenge_method
|
|
)
|
|
end
|
|
end
|
|
end
|