session / token 로그인

kimjaewon·2023년 3월 17일
0

node.js

목록 보기
2/2

★ Session 으로 로그인 / session 로직 직접 만들기

const express = require('express');
const cookieParser = require('cookie-parser')

const app = express();
const port = 3000;

app.use(cookieParser())
app.use(express.json())

const users = [
{id: "noggong"},
{id: "hyowon"},
{id: "kimin"}
]

const sessions = []

app.get('/users', (req, res) => {
const user = sessions.find(session => session.ssid === req.cookies.ssid)
console.log(sessions)
console.log(user)
res.send({id: user.id})
})

app.post('/login', (req, res) => {

const userId = req.body.userId
const user = users.find(user => user.id === userId)

const ssid = Date.now().toString()

sessions.push({
    ...user,
    ssid
})

res.cookie("ssid", ssid)

res.send(user.id)

})
app.post('/logout', (req, res) => {
res.send("logout page")
})
app.post('/register', (req, res) => {
res.send("register page")
})

app.listen(port, () => {
console.log(port, '포트로 서버가 열렸어요!');
});

★ express-session 이용한 코드

const express = require('express');
const cookieParser = require('cookie-parser')
const session = require('express-session')
const MemoryStore = require('memorystore')(session);

const app = express();
const port = 3000;

app.use(cookieParser())
app.use(express.json())

const sessionObj = {
secret: 'kong',
resave: false,
saveUninitialized: true,
store: new MemoryStore(),
};

app.use(session(sessionObj))

const users = [
{id: "noggong"},
{id: "hyowon"},
{id: "kimin"}
]

app.get('/users', (req, res) => {
const userId = req.session.userid
const user = users.find(user => user.id === userId)
res.send(user)
})

app.post('/login', (req, res) =>

const userId = req.body.userId
const user = users.find(user => user.id === userId)

req.session.userid = user.id
res.send(user.id)

})
app.post('/logout', (req, res) => {
res.send("logout page")
})
app.post('/register', (req, res) => {
res.send("register page")
})

app.listen(port, () => {
console.log(port, '포트로 서버가 열렸어요!');
});

profile
올라가자

0개의 댓글