Forráskód Böngészése

Feature: Refactor login logic to integrate Redis for session management and update userId field naming convention

BedirhanOZCAN 1 hónapja
szülő
commit
c2add36c79

+ 1 - 1
src/actions/auth/index.ts

@@ -6,4 +6,4 @@ export {
 } from "./register";
 export {
     default as logout
-} from "./logout";
+} from "./logout";

+ 6 - 3
src/actions/auth/login/index.ts

@@ -12,6 +12,7 @@ import {
     LoginResult,
     LoginInput
 } from "./types";
+import redis from "../../../config/redis";
 
 export const login = async (input: LoginInput): Promise<LoginResult> => {
     const dto = plainToInstance(LoginInput, input);
@@ -63,7 +64,7 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
         {
             companyName: user.companyName,
             fullName: user.fullName,
-            userID: user._id,
+            userId: user._id,
             mail: user.mail
         },
         process.env.JWT_SECRET as string,
@@ -72,11 +73,13 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
         }
     );
 
+    await redis.setex(`user:${user._id.toString()}`, 14400, accessToken);
+
     const refreshToken = jwt.sign(
         {
             companyName: user.companyName,
             fullName: user.fullName,
-            userID: user._id,
+            userId: user._id,
             mail: user.mail
         },
         process.env.JWT_REFRESH_SECRET as string || process.env.JWT_SECRET as string,
@@ -97,7 +100,7 @@ export const login = async (input: LoginInput): Promise<LoginResult> => {
             user: {
                 phoneNumber: user.phoneNumber,
                 companyName: user.companyName,
-                userID: user._id.toString(),
+                userId: user._id.toString(),
                 firstName: user.firstName,
                 lastName: user.lastName,
                 fullName: user.fullName,

+ 1 - 1
src/actions/auth/login/types.ts

@@ -32,7 +32,7 @@ export interface LoginResult {
             firstName: string;
             lastName: string;
             fullName: string;
-            userID: string;
+            userId: string;
             mail: string;
         };
     };

+ 3 - 0
src/middlewares/authMiddleware.ts

@@ -3,6 +3,9 @@ import {
 } from "express";
 import jwt from "jsonwebtoken";
 import redis from "../config/redis";
+import {
+    User
+} from "../models/User";
 
 export interface AuthRequest extends Request {
     userId?: string;

+ 9 - 2
src/routes/authRoutes.ts

@@ -3,8 +3,8 @@ import {
 } from "express";
 import {
     register,
-    logout,
-    login
+    login,
+    logout
 } from "../controllers/authController";
 import {
     authMiddleware
@@ -16,4 +16,11 @@ router.post("/logout", authMiddleware, logout);
 router.post("/register", register);
 router.post("/login", login);
 
+router.get("/validate-token", authMiddleware, (req, res) => {
+    console.log("asasaas yüklendi");
+    res.status(200).json({
+        code: 200, message: "token-valsid", test: "merhaba"
+    });
+});
+
 export default router;