Explorar el Código

auth with cookie

yazid138 hace 3 años
padre
commit
3b67e33b27
Se han modificado 3 ficheros con 19 adiciones y 2 borrados
  1. 12 0
      controller/auth.controller.js
  2. 5 2
      middleware/verifyToken.js
  3. 2 0
      routes/v1/auth.routes.js

+ 12 - 0
controller/auth.controller.js

@@ -90,9 +90,21 @@ exports.login = handleError(async (req, res) => {
     token: `Bearer ${accessToken}`,
     user: cekUser,
   }
+  const now = new Date()
+  const time = now.getTime()
+  now.setTime(time + 24 * 60 * 60 * 1000)
+  res.cookie('sidali-cookie', accessToken, { httpOnly: true, expires: now })
 
   response.success(res, {
     message: 'Berhasil Login',
     data,
   })
 })
+
+exports.logout = (req, res) => {
+  res.cookie('sidali-cookie', '', { expires: new Date() })
+
+  response.success(res, {
+    message: 'Berhasil Logout',
+  })
+}

+ 5 - 2
middleware/verifyToken.js

@@ -6,7 +6,8 @@ module.exports = (req, res, next) => {
   const authHeader = req.headers.authorization
   const token =
     (req.params.token && req.params.token.split(' ')[1]) ||
-    (authHeader && authHeader.split(' ')[1])
+    (authHeader && authHeader.split(' ')[1]) ||
+    req.cookies['sidali-cookie']
 
   if (!token)
     return response.error(res, {
@@ -15,11 +16,13 @@ module.exports = (req, res, next) => {
     })
 
   jwt.verify(token, process.env.SECRET, async (err, data) => {
-    if (err)
+    if (err) {
       return response.error(res, {
         code: 401,
         message: 'Unauthorized',
       })
+    }
+
     try {
       const user = await userModel.findById(data._id)
       req.user = user

+ 2 - 0
routes/v1/auth.routes.js

@@ -1,6 +1,8 @@
 const router = require('express').Router()
 const auth = require('../../controller/auth.controller')
+const verify = require('../../middleware/verifyToken')
 
 router.post('/login', auth.login)
+router.delete('/logout', verify, auth.logout)
 
 module.exports = router