diff --git a/routes/authRoute.js b/routes/authRoute.js
index e6f2d553e56f361aec5c9f6ca82d664c1b5034ff..a83f6d484e2469e47eebbd4d6af82392b619c61f 100644
--- a/routes/authRoute.js
+++ b/routes/authRoute.js
@@ -1,53 +1,78 @@
-  const express = require('express');
-  const passport = require('passport');
+const express = require('express');
+const passport = require('passport');
+const MemberService = require('../services/memberService');
 
-  const router = express.Router();
+const router = express.Router();
 
-  // Google OAuth 濡쒓렇�� �쇱슦��
-  router.get(
-    '/login',
-    passport.authenticate('google', {
-      scope: ['profile', 'email'], // �ъ슜�� �뺣낫 �붿껌�� �꾪븳 scope 
-      failureRedirect: `${process.env.FRONT_URL}/login`
-    })
-  );
+// Google OAuth 濡쒓렇�� �쇱슦��
+router.get(
+  '/login',
+  (req, res, next) => {
+    const { state } = req.query; // �대씪�댁뼵�몄뿉�� �꾨떖�� state(fcmToken)
+    console.log("State received at /login:", state);
 
-  router.get(
-    '/google/callback',
-    passport.authenticate('google', {
-      failureRedirect: `${process.env.FRONT_URL}/login` 
-    }),
-    (req, res) => {
-      const redirectUrl = process.env.FRONT_URL;
-      req.session.save((err) => {
-        if (err) {
-          console.error('�몄뀡 ���� �ㅻ쪟:', err);
-          return res.status(500).json({ error: '�쒕쾭 �ㅻ쪟' });
-        }
-        res.redirect(redirectUrl);
-      });
+    passport.authenticate("google", {
+      scope: ["profile", "email"], // �붿껌�� �ъ슜�� �뺣낫
+      state, // �꾨떖諛쏆� fcmToken�� state濡� �ㅼ젙
+    })(req, res, next);
+  }
+);
+
+router.get(
+  '/google/callback',
+  passport.authenticate('google', {
+    failureRedirect: `${process.env.FRONT_URL}/login`
+  }),
+  async (req, res) => {
+    // Google OAuth �몄쬆 �깃났 �� state �뚮씪誘명꽣濡� �꾨떖�� fcmToken 媛��몄삤湲�
+    const fcmToken = req.query.state;
+    console.log("諛쏆븘�� fcmToken", fcmToken);
+    const userEmail = req.user.email; // Google 濡쒓렇�몄뿉�� 媛��몄삩 email
+    const redirectUrl = process.env.FRONT_URL;
+    req.session.userEmail = userEmail; // �몄뀡�� �ъ슜�� �대찓�� ����
+
+    try {
+      if (fcmToken) {
+        // FCM �좏겙 �깅줉
+        await MemberService.registerToken(userEmail, fcmToken);
+        console.log(`FCM token registered for user: ${userEmail}`);
+      } else {
+        console.warn("No FCM token provided during login");
+      }
+    } catch (error) {
+      console.error("Error registering FCM token during login:", error);
     }
-  );
 
-  // 濡쒓렇�꾩썐 �쇱슦��
-  router.get('/logout', (req, res) => {
-    if (req.session) {
-      req.session.destroy((err) => {
-        if (err) {
-          console.error('�몄뀡 ��젣 �ㅻ쪟:', err);
-          return res.status(500).json({ error: '�쒕쾭 �ㅻ쪟' });
-        }
-        const redirectUrl = process.env.FRONT_URL;
-        res.redirect(redirectUrl);
-      });
-    } else {
-      // �몄뀡�� �녿뒗 寃쎌슦�먮룄 由щ떎�대젆��
+    req.session.save((err) => {
+      if (err) {
+        console.error('�몄뀡 ���� �ㅻ쪟:', err);
+        return res.status(500).json({ error: '�쒕쾭 �ㅻ쪟' });
+      }
+      res.redirect(redirectUrl);
+
+    });
+  }
+);
+
+// 濡쒓렇�꾩썐 �쇱슦��
+router.get('/logout', (req, res) => {
+  if (req.session) {
+    req.session.destroy((err) => {
+      if (err) {
+        console.error('�몄뀡 ��젣 �ㅻ쪟:', err);
+        return res.status(500).json({ error: '�쒕쾭 �ㅻ쪟' });
+      }
       const redirectUrl = process.env.FRONT_URL;
       res.redirect(redirectUrl);
-    }
-  });
-  
-  // �ъ슜�� ��젣 �쇱슦��
+    });
+  } else {
+    // �몄뀡�� �녿뒗 寃쎌슦�먮룄 由щ떎�대젆��
+    const redirectUrl = process.env.FRONT_URL;
+    res.redirect(redirectUrl);
+  }
+});
+
+// �ъ슜�� ��젣 �쇱슦��
 router.delete('/leave', async (req, res) => {
   try {
     // �몄쬆�� �ъ슜�� �뺤씤
@@ -81,4 +106,4 @@ router.delete('/leave', async (req, res) => {
   }
 });
 
-  module.exports = router;
\ No newline at end of file
+module.exports = router;
\ No newline at end of file
diff --git a/routes/chatRoute.js b/routes/chatRoute.js
index e7c2769ca7ec5a4cf449694190885d2f19333046..ed55aa560c36105aff3706f702bda26fe0c6f234 100644
--- a/routes/chatRoute.js
+++ b/routes/chatRoute.js
@@ -1,6 +1,7 @@
 const express = require('express');
 const router = express.Router();
 const chatController = require('../controllers/chatController');
+const { isLoggedIn } = require('../middlewares/auth');
 
 router.post('/create-room', chatController.createChatRoom);
 router.get('/rooms', chatController.getChatRooms);
@@ -10,6 +11,9 @@ router.get('/unread-messages/:nickname', chatController.getUnreadMessages);
 router.get('/unread-count/:chatRoomId', chatController.getUnreadCount);
 router.post('/update-status-and-logid', chatController.updateStatusAndLogId);
 router.post('/update-read-log-id', chatController.updateReadLogId);
+
+router.use(isLoggedIn);
+
 router.post('/:chatRoomId/notices', chatController.addNotice); 
 router.get('/:chatRoomId/notices/latest', chatController.getLatestNotice); 
 router.get('/:chatRoomId/notices', chatController.getAllNotices);
diff --git a/services/memberService.js b/services/memberService.js
index 0435672d90a949dd46dcb7bad1de73d7fe764f69..ebe4fe15d7974bcfce53ad99dbc732ed79672bc2 100644
--- a/services/memberService.js
+++ b/services/memberService.js
@@ -25,7 +25,7 @@ class MemberService {
     }
 
     // 3. MongoDB�먯꽌 愿��� 梨꾪똿諛⑹쓽 FCM �좏겙 �낅뜲�댄듃
-    const existingChatRooms = await ChatRoom.find({ "participants.name": user.name });
+    const existingChatRooms = await ChatRooms.find({ "participants.name": user.name });
     for (const room of existingChatRooms) {
       room.participants = room.participants.map((participant) => {
         if (participant.name === user.name) {