From 7b7d16e45edb0b28fcf95040c9ea6b4b3f5ba4a6 Mon Sep 17 00:00:00 2001 From: Md-Rubel-Ahmed-Rana Date: Sat, 6 Jul 2024 00:11:09 +0600 Subject: [PATCH 1/2] cookie issue solved --- backend/dist/controllers/googleOAuth.controller.js | 6 +++++- backend/dist/controllers/user.controller.js | 6 +++++- backend/dist/middlewares/auth.js | 2 ++ backend/src/controllers/googleOAuth.controller.ts | 6 +++++- backend/src/controllers/user.controller.ts | 6 +++++- backend/src/middlewares/auth.ts | 2 ++ 6 files changed, 24 insertions(+), 4 deletions(-) diff --git a/backend/dist/controllers/googleOAuth.controller.js b/backend/dist/controllers/googleOAuth.controller.js index cf0bdda..50a377f 100644 --- a/backend/dist/controllers/googleOAuth.controller.js +++ b/backend/dist/controllers/googleOAuth.controller.js @@ -22,7 +22,11 @@ class Controller extends rootController_1.default { this.login = this.catchAsync((req, res) => __awaiter(this, void 0, void 0, function* () { if (req === null || req === void 0 ? void 0 : req.user) { const result = yield googleOAuth_service_1.GoogleOAuthService.login(req.user); - res.cookie("tmAccessToken", result, { httpOnly: true, secure: true }); + res.cookie("tmAccessToken", result, { + httpOnly: true, + sameSite: "lax", + secure: true, + }); res.redirect(envConfig_1.config.google.redirectUrl); } })); diff --git a/backend/dist/controllers/user.controller.js b/backend/dist/controllers/user.controller.js index 9c402e8..6f28d6b 100644 --- a/backend/dist/controllers/user.controller.js +++ b/backend/dist/controllers/user.controller.js @@ -60,7 +60,11 @@ class Controller extends rootController_1.default { this.login = this.catchAsync((req, res) => __awaiter(this, void 0, void 0, function* () { const { email, password } = req.body; const result = yield user_service_1.UserService.login(email, password); - res.cookie("tmAccessToken", result, { httpOnly: true, secure: true }); + res.cookie("tmAccessToken", result, { + httpOnly: true, + sameSite: "lax", + secure: true, + }); this.apiResponse(res, { statusCode: http_status_1.default.OK, success: true, diff --git a/backend/dist/middlewares/auth.js b/backend/dist/middlewares/auth.js index f71d2fa..b8348e7 100644 --- a/backend/dist/middlewares/auth.js +++ b/backend/dist/middlewares/auth.js @@ -7,6 +7,8 @@ const http_status_1 = __importDefault(require("http-status")); const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const verifyJwt = (req, res, next) => { try { + console.log({ Cookies: req.cookies }); + console.log({ Token: req.cookies.tmAccessToken }); const token = req.cookies.tmAccessToken; if (!token) { return res.json({ diff --git a/backend/src/controllers/googleOAuth.controller.ts b/backend/src/controllers/googleOAuth.controller.ts index ebe95c2..52b3968 100644 --- a/backend/src/controllers/googleOAuth.controller.ts +++ b/backend/src/controllers/googleOAuth.controller.ts @@ -7,7 +7,11 @@ class Controller extends RootController { login = this.catchAsync(async (req: Request, res: Response) => { if (req?.user) { const result: string = await GoogleOAuthService.login(req.user); - res.cookie("tmAccessToken", result, { httpOnly: true, secure: true }); + res.cookie("tmAccessToken", result, { + httpOnly: true, + sameSite: "lax", + secure: true, + }); res.redirect(config.google.redirectUrl); } }); diff --git a/backend/src/controllers/user.controller.ts b/backend/src/controllers/user.controller.ts index 8a0dbbd..071220e 100644 --- a/backend/src/controllers/user.controller.ts +++ b/backend/src/controllers/user.controller.ts @@ -50,7 +50,11 @@ class Controller extends RootController { login = this.catchAsync(async (req: Request, res: Response) => { const { email, password } = req.body; const result = await UserService.login(email, password); - res.cookie("tmAccessToken", result, { httpOnly: true, secure: true }); + res.cookie("tmAccessToken", result, { + httpOnly: true, + sameSite: "lax", + secure: true, + }); this.apiResponse(res, { statusCode: httpStatus.OK, success: true, diff --git a/backend/src/middlewares/auth.ts b/backend/src/middlewares/auth.ts index 181bbdf..b72c7e0 100644 --- a/backend/src/middlewares/auth.ts +++ b/backend/src/middlewares/auth.ts @@ -4,6 +4,8 @@ import jwt from "jsonwebtoken"; const verifyJwt = (req: Request, res: Response, next: NextFunction) => { try { + console.log({ Cookies: req.cookies }); + console.log({ Token: req.cookies.tmAccessToken }); const token = req.cookies.tmAccessToken; if (!token) { return res.json({ From bf40a9dbe27b002559f01b2ba4a76c32a5c3d4a0 Mon Sep 17 00:00:00 2001 From: Md-Rubel-Ahmed-Rana Date: Sat, 6 Jul 2024 00:13:42 +0600 Subject: [PATCH 2/2] cookie issue solved --- frontend/src/components/shared/Navbar.tsx | 1 + frontend/src/features/user/index.ts | 4 ++-- frontend/src/hooks/useGetLoggedInUser.ts | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/shared/Navbar.tsx b/frontend/src/components/shared/Navbar.tsx index ad50450..ab2c705 100644 --- a/frontend/src/components/shared/Navbar.tsx +++ b/frontend/src/components/shared/Navbar.tsx @@ -18,6 +18,7 @@ const Navbar = () => { const { theme, setTheme } = useTheme(); const { data }: any = useLoggedInUserQuery({}); const user: IUser = data?.data; + console.log("User from navbar", user); const [isOpen, setIsOpen] = useState(false); const [toggle, setToggle] = useState(false); const { data: notifiedData } = useGetNotificationQuery(user?.id); diff --git a/frontend/src/features/user/index.ts b/frontend/src/features/user/index.ts index ffc51c9..3d968da 100644 --- a/frontend/src/features/user/index.ts +++ b/frontend/src/features/user/index.ts @@ -12,7 +12,7 @@ const userApi = apiSlice.injectEndpoints({ loginUser: builder.mutation({ query: (data) => ({ method: "POST", - url: "https://api-team-manager.onrender.com/user/login", + url: "/user/login", body: data, credentials: "include", }), @@ -26,7 +26,7 @@ const userApi = apiSlice.injectEndpoints({ }), loggedInUser: builder.query({ query: () => ({ - url: "https://api-team-manager.onrender.com/user/auth", + url: "/user/auth", credentials: "include", }), providesTags: ["user"] as any, diff --git a/frontend/src/hooks/useGetLoggedInUser.ts b/frontend/src/hooks/useGetLoggedInUser.ts index e0dbb75..a2e3743 100644 --- a/frontend/src/hooks/useGetLoggedInUser.ts +++ b/frontend/src/hooks/useGetLoggedInUser.ts @@ -1,5 +1,4 @@ import { useEffect, useState } from "react"; -import Cookies from "js-cookie"; import { IUser, userInitData } from "@/interfaces/user.interface"; const useGetLoggedInUser = () => { @@ -15,10 +14,12 @@ const useGetLoggedInUser = () => { } ); const data = await res.json(); + console.log("User from useGetLoggedInUser hook", data); setUser(data?.data); } catch (error) { console.log("Failed to fetch user"); } + console.log("Will call"); }; fetchUser(); }, []);