From c435e46bde6ec1e4f1aec3de395061a9def512ab Mon Sep 17 00:00:00 2001 From: Debian Dev4 Date: Wed, 17 Sep 2025 10:05:46 +0000 Subject: [PATCH] feat(idnot): NEXT_PUBLIC_IDNOT_REDIRECT_URI + usage (isoler redirect_uri) --- Dockerfile | 4 ++++ next.config.js | 3 +++ src/front/Api/Auth/IdNot/index.ts | 5 ++--- src/front/Components/Layouts/Login/StepEmail/index.tsx | 2 +- src/front/Config/VariablesFront.ts | 2 ++ src/pages/_app.tsx | 3 +++ 6 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index bd10e232..7b6c445a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,6 +49,7 @@ ARG NEXT_PUBLIC_FRONT_APP_PORT ARG NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT ARG NEXT_PUBLIC_IDNOT_CLIENT_ID ARG NEXT_PUBLIC_IDNOT_BASE_URL +ARG NEXT_PUBLIC_IDNOT_REDIRECT_URI ARG NEXT_PUBLIC_DOCAPOSTE_API_URL ARG NEXT_PUBLIC_HOTJAR_SITE_ID ARG NEXT_PUBLIC_HOTJAR_VERSION @@ -68,6 +69,7 @@ ENV NEXT_PUBLIC_BACK_API_PROTOCOL=${NEXT_PUBLIC_BACK_API_PROTOCOL} \ NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=${NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT} \ NEXT_PUBLIC_IDNOT_CLIENT_ID=${NEXT_PUBLIC_IDNOT_CLIENT_ID} \ NEXT_PUBLIC_IDNOT_BASE_URL=${NEXT_PUBLIC_IDNOT_BASE_URL} \ + NEXT_PUBLIC_IDNOT_REDIRECT_URI=${NEXT_PUBLIC_IDNOT_REDIRECT_URI} \ NEXT_PUBLIC_DOCAPOSTE_API_URL=${NEXT_PUBLIC_DOCAPOSTE_API_URL} \ NEXT_PUBLIC_HOTJAR_SITE_ID=${NEXT_PUBLIC_HOTJAR_SITE_ID} \ NEXT_PUBLIC_HOTJAR_VERSION=${NEXT_PUBLIC_HOTJAR_VERSION} \ @@ -94,6 +96,7 @@ ARG NEXT_PUBLIC_FRONT_APP_PORT ARG NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT ARG NEXT_PUBLIC_IDNOT_CLIENT_ID ARG NEXT_PUBLIC_IDNOT_BASE_URL +ARG NEXT_PUBLIC_IDNOT_REDIRECT_URI ARG NEXT_PUBLIC_DOCAPOSTE_API_URL ARG NEXT_PUBLIC_HOTJAR_SITE_ID ARG NEXT_PUBLIC_HOTJAR_VERSION @@ -115,6 +118,7 @@ ENV NODE_ENV=production \ NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=${NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT} \ NEXT_PUBLIC_IDNOT_CLIENT_ID=${NEXT_PUBLIC_IDNOT_CLIENT_ID} \ NEXT_PUBLIC_IDNOT_BASE_URL=${NEXT_PUBLIC_IDNOT_BASE_URL} \ + NEXT_PUBLIC_IDNOT_REDIRECT_URI=${NEXT_PUBLIC_IDNOT_REDIRECT_URI} \ NEXT_PUBLIC_DOCAPOSTE_API_URL=${NEXT_PUBLIC_DOCAPOSTE_API_URL} \ NEXT_PUBLIC_HOTJAR_SITE_ID=${NEXT_PUBLIC_HOTJAR_SITE_ID} \ NEXT_PUBLIC_HOTJAR_VERSION=${NEXT_PUBLIC_HOTJAR_VERSION} \ diff --git a/next.config.js b/next.config.js index da3cb56b..b5dd7383 100644 --- a/next.config.js +++ b/next.config.js @@ -19,6 +19,7 @@ const nextConfig = { NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT: process.env.NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT, NEXT_PUBLIC_IDNOT_CLIENT_ID: process.env.NEXT_PUBLIC_IDNOT_CLIENT_ID, NEXT_PUBLIC_IDNOT_BASE_URL: process.env.NEXT_PUBLIC_IDNOT_BASE_URL, + NEXT_PUBLIC_IDNOT_REDIRECT_URI: process.env.NEXT_PUBLIC_IDNOT_REDIRECT_URI, NEXT_PUBLIC_DOCAPOSTE_API_URL: process.env.NEXT_PUBLIC_DOCAPOSTE_API_URL, NEXT_PUBLIC_HOTJAR_SITE_ID: process.env.NEXT_PUBLIC_HOTJAR_SITE_ID, NEXT_PUBLIC_HOTJAR_VERSION: process.env.NEXT_PUBLIC_HOTJAR_VERSION, @@ -40,6 +41,7 @@ const nextConfig = { NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT: process.env.NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT, NEXT_PUBLIC_IDNOT_CLIENT_ID: process.env.NEXT_PUBLIC_IDNOT_CLIENT_ID, NEXT_PUBLIC_IDNOT_BASE_URL: process.env.NEXT_PUBLIC_IDNOT_BASE_URL, + NEXT_PUBLIC_IDNOT_REDIRECT_URI: process.env.NEXT_PUBLIC_IDNOT_REDIRECT_URI, NEXT_PUBLIC_DOCAPOSTE_API_URL: process.env.NEXT_PUBLIC_DOCAPOSTE_API_URL, NEXT_PUBLIC_HOTJAR_SITE_ID: process.env.NEXT_PUBLIC_HOTJAR_SITE_ID, NEXT_PUBLIC_HOTJAR_VERSION: process.env.NEXT_PUBLIC_HOTJAR_VERSION, @@ -61,6 +63,7 @@ const nextConfig = { NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT: process.env.NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT, NEXT_PUBLIC_IDNOT_CLIENT_ID: process.env.NEXT_PUBLIC_IDNOT_CLIENT_ID, NEXT_PUBLIC_IDNOT_BASE_URL: process.env.NEXT_PUBLIC_IDNOT_BASE_URL, + NEXT_PUBLIC_IDNOT_REDIRECT_URI: process.env.NEXT_PUBLIC_IDNOT_REDIRECT_URI, NEXT_PUBLIC_DOCAPOSTE_API_URL: process.env.NEXT_PUBLIC_DOCAPOSTE_API_URL, NEXT_PUBLIC_HOTJAR_SITE_ID: process.env.NEXT_PUBLIC_HOTJAR_SITE_ID, NEXT_PUBLIC_HOTJAR_VERSION: process.env.NEXT_PUBLIC_HOTJAR_VERSION, diff --git a/src/front/Api/Auth/IdNot/index.ts b/src/front/Api/Auth/IdNot/index.ts index a23dfd42..0a10dee1 100644 --- a/src/front/Api/Auth/IdNot/index.ts +++ b/src/front/Api/Auth/IdNot/index.ts @@ -27,10 +27,9 @@ export default class Auth extends BaseApiService { public async loginWithIdNot() { const variables = FrontendVariables.getInstance(); + const redirectUri = variables.IDNOT_REDIRECT_URI ?? `${variables.FRONT_APP_HOST}/authorized-client`; const url = new URL( - `${variables.IDNOT_BASE_URL + variables.IDNOT_AUTHORIZE_ENDPOINT}?client_id=${variables.IDNOT_CLIENT_ID}&redirect_uri=${ - variables.FRONT_APP_HOST - }/authorized-client&scope=openid,profile&response_type=code`, + `${variables.IDNOT_BASE_URL + variables.IDNOT_AUTHORIZE_ENDPOINT}?client_id=${variables.IDNOT_CLIENT_ID}&redirect_uri=${redirectUri}&scope=openid,profile&response_type=code`, ); try { return await this.getRequest(url); diff --git a/src/front/Components/Layouts/Login/StepEmail/index.tsx b/src/front/Components/Layouts/Login/StepEmail/index.tsx index 3c0fea87..d437fb0b 100644 --- a/src/front/Components/Layouts/Login/StepEmail/index.tsx +++ b/src/front/Components/Layouts/Login/StepEmail/index.tsx @@ -43,7 +43,7 @@ export default function StepEmail(props: IProps) { const error = router.query["error"]; const redirectUserOnConnection = useCallback(() => { const variables = FrontendVariables.getInstance(); - const redirectUri = `${variables.FRONT_APP_HOST}/authorized-client`; + const redirectUri = variables.IDNOT_REDIRECT_URI ?? `${variables.FRONT_APP_HOST}/authorized-client`; const authorizeBase = `${variables.IDNOT_BASE_URL}${variables.IDNOT_AUTHORIZE_ENDPOINT}`; router.push( `${authorizeBase}?client_id=${variables.IDNOT_CLIENT_ID}&redirect_uri=${encodeURIComponent(redirectUri)}&scope=openid,profile&response_type=code`, diff --git a/src/front/Config/VariablesFront.ts b/src/front/Config/VariablesFront.ts index 8c5e7b49..2038a65a 100644 --- a/src/front/Config/VariablesFront.ts +++ b/src/front/Config/VariablesFront.ts @@ -19,6 +19,8 @@ export class FrontendVariables { public IDNOT_CLIENT_ID!: string; + public IDNOT_REDIRECT_URI?: string; + public DOCAPOST_API_URL!: string; public KEY_DATA!: string; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index e8a7c308..c86ffe22 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -31,6 +31,7 @@ type AppPropsWithLayout = AppProps & { idNotBaseUrl: string; idNotAuthorizeEndpoint: string; idNotClientId: string; + idNotRedirectUri?: string; fcAuthorizeEndpoint: string; fcClientId: string; docaposteApiUrl: string; @@ -75,6 +76,7 @@ const MyApp = (({ instance.IDNOT_BASE_URL = idNotBaseUrl; instance.IDNOT_AUTHORIZE_ENDPOINT = idNotAuthorizeEndpoint; instance.IDNOT_CLIENT_ID = idNotClientId; + instance.IDNOT_REDIRECT_URI = (publicRuntimeConfig as any).NEXT_PUBLIC_IDNOT_REDIRECT_URI; instance.FC_AUTHORIZE_ENDPOINT = fcAuthorizeEndpoint; instance.FC_CLIENT_ID = fcClientId; instance.DOCAPOST_API_URL = docaposteApiUrl; @@ -159,6 +161,7 @@ MyApp.getInitialProps = async () => { idNotBaseUrl: publicRuntimeConfig.NEXT_PUBLIC_IDNOT_BASE_URL, idNotAuthorizeEndpoint: publicRuntimeConfig.NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT, idNotClientId: publicRuntimeConfig.NEXT_PUBLIC_IDNOT_CLIENT_ID, + idNotRedirectUri: publicRuntimeConfig.NEXT_PUBLIC_IDNOT_REDIRECT_URI, fcAuthorizeEndpoint: publicRuntimeConfig.NEXT_PUBLIC_FC_AUTHORIZE_ENDPOINT, fcClientId: publicRuntimeConfig.NEXT_PUBLIC_FC_CLIENT_ID, docaposteApiUrl: publicRuntimeConfig.NEXT_PUBLIC_DOCAPOST_API_URL,