From beb3927f7836317c6e692a55fc6a627f2c64ad19 Mon Sep 17 00:00:00 2001 From: ErickSkrauch Date: Wed, 15 Jan 2025 14:33:55 +0100 Subject: [PATCH] Resolves #41. Add support for `code_challenge` param --- packages/app/components/auth/reducer.ts | 2 ++ .../app/services/authFlow/InitOAuthAuthCodeFlowState.test.ts | 4 ++++ packages/app/services/authFlow/InitOAuthAuthCodeFlowState.ts | 2 ++ 3 files changed, 8 insertions(+) diff --git a/packages/app/components/auth/reducer.ts b/packages/app/components/auth/reducer.ts index af398b0..25857c5 100644 --- a/packages/app/components/auth/reducer.ts +++ b/packages/app/components/auth/reducer.ts @@ -44,6 +44,8 @@ export interface OauthAuthCodeFlowParams { responseType: string; state: string; scope: string; + code_challenge?: string; + code_challenge_method?: string; } export interface OauthDeviceCodeFlowParams { diff --git a/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.test.ts b/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.test.ts index f80f86a..78f8bc8 100644 --- a/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.test.ts +++ b/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.test.ts @@ -30,6 +30,8 @@ describe('OAuthState', () => { response_type: 'response_type', description: 'description', scope: 'scope1 scope2', + code_challenge: 'code_challenge', + code_challenge_method: 'S256', prompt: 'none', login_hint: '1', state: 'state', @@ -50,6 +52,8 @@ describe('OAuthState', () => { responseType: query.response_type, scope: query.scope, state: query.state, + code_challenge: query.code_challenge, + code_challenge_method: query.code_challenge_method, }, description: query.description, prompt: query.prompt, diff --git a/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.ts b/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.ts index a1bb88b..a92ac4f 100644 --- a/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.ts +++ b/packages/app/services/authFlow/InitOAuthAuthCodeFlowState.ts @@ -14,6 +14,8 @@ export default class InitOAuthAuthCodeFlowState extends AbstractState { responseType: query.get('response_type')!, scope: (query.get('scope') || '').replace(/,/g, ' '), state: query.get('state')!, + code_challenge: query.get('code_challenge') || undefined, + code_challenge_method: query.get('code_challenge_method') || undefined, }, description: query.get('description')!, prompt: query.get('prompt')!,