diff --git a/src/common/database/index.js b/src/common/database/index.js
index 198d2764bb68012afb4a30e886fa48ef4e151d39..3fb3ca104854d47086b4d74156c667dd2a9ecb12 100644
--- a/src/common/database/index.js
+++ b/src/common/database/index.js
@@ -2,10 +2,10 @@ const mysql = require("mysql2");
 
 const connection = mysql.createConnection({
   host: "127.0.0.1",
-  port: 3000,
+  port: 3306,
   user: "root",
   password: "1234",
-  database: "cakaatalk",
+  database: "cakaotalk",
 });
 
 connection.connect((err) => {
diff --git a/src/common/jwt/jwt.controller.js b/src/common/jwt/jwt.controller.js
index 82391731dd9e390c276f925199d293ba01163411..9ec7a58773b8cb197a5ac5b2da765d95872f3141 100644
--- a/src/common/jwt/jwt.controller.js
+++ b/src/common/jwt/jwt.controller.js
@@ -1,5 +1,4 @@
 const jwt = require('jsonwebtoken')
-const AuthToken = require('../../modules/auth/AuthToekn.js')
 const jwtService = require('./jwt.service.js')
 const ACCESS_SECRET_KEY = process.env.ACCESS_TOKEN_PRIVATE_KEY;
 const REFRESH_SECRET_KEY = process.env.REFRESH_TOKEN_PRIVTATE_KEY;
@@ -32,10 +31,11 @@ exports.generateRefreshToken = (email) => {
     )
 }
 
-exports.generateTokens = async (user) => {
+exports.generateTokens = async (email) => {
     try {
-        const accessToken = this.generateAccessToken(user.email);
-        const refreshToken = this.generateRefreshToken(user.email);
+        const accessToken = this.generateAccessToken(email);
+        const refreshToken = this.generateRefreshToken(email);
+        const result = await jwtService.insertRefreshToken(email, refreshToken);
 
         // DB에서 Token 있는지 검사
         const existRefreshToken = await jwtService.checkRefreshToken(refreshToken);
@@ -47,11 +47,19 @@ exports.generateTokens = async (user) => {
     }
 };
 
-exports.validateToken = (accessToken, refreshToken) => {
-
+exports.validateToken = async (accessToken, refreshToken) => {
+    return new Promise(async (resolve, reject) => {
+        try {
+            const email = await verifyAccessToken(accessToken, refreshToken);
+            resolve(email);
+        } catch (err) {
+            console.err("Authentication 실패");
+            reject(err);
+        }
+    })
 }
 
-function verifyAccessToken(accessToken) {
+function verifyAccessToken(accessToken, refreshToken) {
     return new Promise((resolve, reject) => {
         try {
             resolve(jwt.verify(accessToken, ACCESS_SECRET_KEY));
diff --git a/src/common/jwt/jwt.service.js b/src/common/jwt/jwt.service.js
index a6aeb2e44114961abb4b3042f1ae3b798ba57c48..4db510b8213ed40b74a277607b706ff2cc11b511 100644
--- a/src/common/jwt/jwt.service.js
+++ b/src/common/jwt/jwt.service.js
@@ -17,10 +17,22 @@ exports.checkRefreshToken = (refreshToken) => {
     });
 }
 
+exports.insertRefreshToken = (email, refreshToken) => {
+    return new Promise((resolve, reject) => {
+        mysql.query('INSERT INTO AUTH (refresh_token, email) VALUES (?, ?);', [refreshToken, email], (err, results) => {
+            if (err) {
+                reject(err);
+            } else {
+                resolve(results);
+            }
+        });
+    });
+}
+
 // RefreshToken 삭제 함수
 exports.deleteRefreshToken = (refreshToken) => {
     return new Promise((resolve, reject) => {
-        connection.query('DELETE FROM AUTH WHERE refresh_token = ?', [refreshToken], (err, results) => {
+        mysql.query('DELETE FROM AUTH WHERE refresh_token = ?', [refreshToken], (err, results) => {
             if (err) {
                 reject(err);
             } else {
diff --git a/src/modules/auth/auth.controller.js b/src/modules/auth/auth.controller.js
index f2c29046b4330612f4318f6c5babb3d9012d3d97..f2fcc04846dfcd5757a77be2ab1d2fc686e7fc66 100644
--- a/src/modules/auth/auth.controller.js
+++ b/src/modules/auth/auth.controller.js
@@ -4,15 +4,22 @@ const userService = require('../user/user.service');
 exports.signUpAndGiveToken = async (req, res) => {
     try {
         const { email, password } = req.body;
-
+        const result = await userService.findUserByEmail(email);
+        if (result != undefined || result != null) {
+            throw new Error("Already Existing Email");
+        }
+    } catch (error) {
+        console.error(error);
     }
 }
 
 exports.loginAndGiveToken = async (req, res) => {
     try {
         const email = req.query.email;
+        console.log(email);
         const result = await userService.findUserByEmail(email);
-        const accessToken = jwtController.generateAccessToken(result[0].email);
+        const { accessToken, refreshToken } = await jwtController.generateTokens(result[0].email);
+        res.cookie('refreshToken', refreshToken, { httpOnly: true });
         res.status(200).json({ accessToken: accessToken });
     } catch (error) {
         console.error('Error occurred while finding user by email:', error);
@@ -33,20 +40,24 @@ exports.logoutAndDestroyToken = async (req, res) => {
 // TODO: next 넣어서 미들웨어로 만들기
 exports.checkUserSession = async (req, res) => {
     try {
-        const accessToken = req.headers.authorization;
+        const accessToken = req.headers.Authorization;
         const refreshToken = extractRefreshTokenFromCookie(req);
+        console.log("refreshToken: " + refreshToken);
         const result = await jwtController.validateToken(accessToken, refreshToken);
         console.log('Successfuly Authenticateed');
         res.status(200).json({ email: result.email });
     } catch (error) {
-        res.status(500).json({ error: error })
+        res.status(500).json("토큰 없음");
     }
 }
 
 // Http Only Cookie에서 RefreshToken을 가져오는 함수
 function extractRefreshTokenFromCookie(req) {
     // TODO: Http Only Cookie에서 RefreshToken을 가져오는 로직을 작성해주세요.
-    // 쿠키에서 RefreshToken을 추출하고 반환해야 합니다.
-    return req.cookies.refreshToken;
+    const refreshToken = req.cookies.refreshToken
+    if (refreshToken) {
+        return req.cookies.refreshToken;
+    }
+    throw new Error("Refresh Token이 Cookie에 존재하지 않음");
 }
 
diff --git a/src/modules/auth/utils/validation.js b/src/modules/auth/utils/validation.js
index 1617b10814e252f502aaa74cdd0b00c3c0c40002..073274587407c9da7c97b51dc16c50121b72c034 100644
--- a/src/modules/auth/utils/validation.js
+++ b/src/modules/auth/utils/validation.js
@@ -1,6 +1,5 @@
 const signUpBodyValidation = (email, body) => {
     return new Promise((resolve, reject) => {
-
-    }
-    )
+        
+    });
 };
\ No newline at end of file