From 9c986d3bc74d3f63ae78b4d65435b9a084582b31 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 30 May 2024 13:03:11 +0300 Subject: [PATCH] Login:OAuth: fix login without auth cookie --- .../login/src/components/LoginForm/index.tsx | 32 ++++++++++++------- packages/runtime.json | 2 +- packages/shared/api/oauth/index.ts | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/login/src/components/LoginForm/index.tsx b/packages/login/src/components/LoginForm/index.tsx index a6ab29990f..79670d10b2 100644 --- a/packages/login/src/components/LoginForm/index.tsx +++ b/packages/login/src/components/LoginForm/index.tsx @@ -59,6 +59,8 @@ import ForgotContainer from "./sub-components/ForgotContainer"; import { StyledCaptcha } from "./LoginForm.styled"; import { LoginDispatchContext, LoginValueContext } from "../Login"; import OAuthClientInfo from "../ConsentInfo"; +import api from "@docspace/shared/api"; +import { useRouter } from "next/router"; const LoginForm = ({ hashSettings, @@ -71,6 +73,7 @@ const LoginForm = ({ const { setIsLoading } = useContext(LoginDispatchContext); const searchParams = useSearchParams(); + const router = useRouter(); const theme = useTheme(); @@ -236,7 +239,15 @@ const LoginForm = ({ const session = !isChecked; login(user, hash, session, captchaToken) - .then((res: string | object) => { + .then(async (res: string | object) => { + if (clientId) { + await api.oauth.onOAuthLogin(clientId); + + router.push(`/login/consent?clientId=${clientId}`); + + return; + } + const isConfirm = typeof res === "string" && res.includes("confirm"); const redirectPath = referenceUrl || sessionStorage.getItem("referenceUrl"); @@ -275,16 +286,17 @@ const LoginForm = ({ setIsLoading(false); }); }, [ - hashSettings, - identifier, - identifierValid, - isCaptcha, - isCaptchaSuccessful, - isChecked, - isDesktop, - password, reCaptchaPublicKey, + isCaptcha, + identifier, + password, + identifierValid, setIsLoading, + hashSettings, + isDesktop, + isChecked, + isCaptchaSuccessful, + clientId, referenceUrl, ]); @@ -337,8 +349,6 @@ const LoginForm = ({ const passwordErrorMessage = errorMessage(); - console.log(client); - return (
{client && ( diff --git a/packages/runtime.json b/packages/runtime.json index a41fd960e4..9c0a73efb4 100644 --- a/packages/runtime.json +++ b/packages/runtime.json @@ -1,5 +1,5 @@ { - "date": "2024529_112928", + "date": "2024530_114536", "checksums": { "api.js": "0efbae3383bf6c6b6f26d573eee164d2", "api.poly.js": "2a2ac2c0e4a7007b61d2d1ff7b00a22e", diff --git a/packages/shared/api/oauth/index.ts b/packages/shared/api/oauth/index.ts index a6000737c3..838918a45c 100644 --- a/packages/shared/api/oauth/index.ts +++ b/packages/shared/api/oauth/index.ts @@ -130,7 +130,7 @@ export const onOAuthLogin = (clientId: string) => { return request({ method: "post", - url: `/oauth2/login?clientId=${clientId}`, + url: `/oauth2/login?client_id=${clientId}`, data: formData, withRedirect: true, headers: {