diff --git a/back/src/domains/core/authentication/inclusion-connect/adapters/PgUserRepository.ts b/back/src/domains/core/authentication/inclusion-connect/adapters/PgUserRepository.ts index 99264fedf3..e3416905b4 100644 --- a/back/src/domains/core/authentication/inclusion-connect/adapters/PgUserRepository.ts +++ b/back/src/domains/core/authentication/inclusion-connect/adapters/PgUserRepository.ts @@ -75,7 +75,7 @@ export class PgUserRepository implements UserRepository { return toAuthenticatedUser(response); } - #getUserQueryBuilder(provider: string) { + #getUserQueryBuilder(provider: OAuthProvider) { return this.transaction .selectFrom("users") .select([ diff --git a/back/src/domains/core/authentication/inclusion-connect/adapters/oauth-gateway/HttpOAuthGateway.ts b/back/src/domains/core/authentication/inclusion-connect/adapters/oauth-gateway/HttpOAuthGateway.ts index eabb6d535d..cc0394b625 100644 --- a/back/src/domains/core/authentication/inclusion-connect/adapters/oauth-gateway/HttpOAuthGateway.ts +++ b/back/src/domains/core/authentication/inclusion-connect/adapters/oauth-gateway/HttpOAuthGateway.ts @@ -55,8 +55,7 @@ export class HttpOAuthGateway implements OAuthGateway { { nonce, page, state }: GetLoginUrlParams, provider: OAuthProvider, ): Promise { - // On pourrait placer ces URL au niveau du ProConnect/InclusionConnect HTTP Client ? - const uriByMode: Record = { + const uriByProvider: Record = { InclusionConnect: this.#makeInclusionConnectAuthorizeUri(), ProConnect: this.#makeProConnectAuthorizeUri(), }; @@ -83,7 +82,7 @@ export class HttpOAuthGateway implements OAuthGateway { scope: this.proConnectConfig.scope, }); - return `${uriByMode[provider]}?${queryParams}`; + return `${uriByProvider[provider]}?${queryParams}`; } async #getAccessTokenProConnect({ @@ -260,14 +259,6 @@ export class HttpOAuthGateway implements OAuthGateway { } #makeInclusionConnectAuthorizeUri(): AbsoluteUrl { - // the following is made in order to support both the old and the new InclusionConnect urls: - // Base Url was : https://connect.inclusion.beta.gouv.fr/realms/inclusion-connect/protocol/openid-connect - // OLD : "https://connect.inclusion.beta.gouv.fr/realms/inclusion-connect/protocol/openid-connect/auth" - - // Base Url will be : https://connect.inclusion.beta.gouv.fr/auth - // NEW : "https://connect.inclusion.beta.gouv.fr/auth/authorize" - // or : "https://recette.connect.inclusion.beta.gouv.fr/auth/authorize" - const authorizeInPath = this.inclusionConnectConfig.providerBaseUri.includes( "connect.inclusion.beta.gouv.fr/auth", @@ -296,42 +287,3 @@ type InclusionConnectLoginUrlParams = { type ProConnectLoginUrlParams = InclusionConnectLoginUrlParams & { acr_values: string; }; - -// -> inclusionConnect button calls startInclusionConnectLogin (immersion) -// -> redirects to inclusionConnect (inclusion) -// -> when logged in, redirects to afterLoginRedirection (immersion) -// -> with code received we can get the access token by calling : inclusionConnectGetAccessToken (inclusion) -// return is of type { -// 'access_token': , -// 'token_type': 'Bearer', -// 'expires_in': 60, -// 'id_token': -// } -// -> id_token is a JWT. The payload contains the OAuth data of type : -// nonce : la valeur transmise lors de la requête initiale qu'il faut vérifier. -// sub : l'identifiant unique de l'utilisateur que le FS doit conserver au cas où l'utilisateur change son adresse e-mail un jour (ce qui n'est pas encore possible pour le moment). -// given_name : le prénom de l'utilisateur. -// family_name : son nom de famille. -// email : so -// // this token is for test purpose : - -// export const jwtGeneratedTokenFromFakeInclusionPayload = -// "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6Im5vdW5jZSIsInN1YiI6Im15LXVzZXItaWQiLCJnaXZlbl9uYW1lIjoiSm9obiIsImZhbWlseV9uYW1lIjoiRG9lIiwiZW1haWwiOiJqb2huLmRvZUBpbmNsdXNpb24uY29tIn0.kHy9LewhgXGVPy9rwcRea6LufhvgBb4zpcXa_H0-fEHIQk6ZhMATHL3LR1bgYqAo4IBU-cg1HYEbiOYMVPd4kg"; - -// // JWT contains the following payload : - -// export const fakeInclusionPayload = { -// nonce: "nounce", -// sub: "my-user-id", -// given_name: "John", -// family_name: "Doe", -// email: "john.doe@inclusion.com", -// }; - -// export const defaultInclusionAccessTokenResponse: InclusionAccessTokenResponse = -// { -// token_type: "Bearer", -// expires_in: 60, -// access_token: "initial-access-token", -// id_token: jwtGeneratedTokenFromFakeInclusionPayload, -// }; diff --git a/back/src/domains/core/authentication/inclusion-connect/entities/OAuthIdTokenPayload.ts b/back/src/domains/core/authentication/inclusion-connect/entities/OAuthIdTokenPayload.ts index 3cf24af3fd..cc0fcd24d7 100644 --- a/back/src/domains/core/authentication/inclusion-connect/entities/OAuthIdTokenPayload.ts +++ b/back/src/domains/core/authentication/inclusion-connect/entities/OAuthIdTokenPayload.ts @@ -35,18 +35,3 @@ export const proConnectAuthTokenPayloadSchema: z.Schema inclusion-connect.com/authorize ( en précisant le callback : ? callbackUrl=if-back.com/ic-after-login) -// Récupérer le jwt token que l'on décode pour récup les infos du user --> getAccessToken -// redirige vers le front, authentifié avec un tocken que l'on génère, authentifie l'utilisateur - -// Pro Connect -// Redirige sur la page de login Pro Connect --> pro-connect.com/authorize ( en précisant le callback : ? callbackUrl=if-back.com/ic-after-login) -// Récupérer un jwt token -// appel de /user-info en envoyant le token récupéré précédemment pour récup les infos du user -// redirige vers le front, authentifié avec un tocken que l'on génère, authentifie l'utilisateur