Today I Learned/TIL 06
2023 - 06 - 25 Json Web Token, Map함수
sangwoo_rhie
2023. 6. 25. 15:24
Map함수는 같은 배열을 복제하는 역할을 한다. 배열안의 인덱스 값을 변경하여 새로운 배열을 만들어낸다.
Map함수에 아무런 변경을 취하지 않았을 경우 똑같은 배열을 그대로 복제한다.
const express = require('express')
const app = express()
const port = 3000
// 작성자, 날짜, 제목, id
const posts = [
{
id: 1,
날짜: "2023-12-33 12:00:23",
작성자: "우준호",
제목: "The standard Lorem Ipsum passage, used since the 1500s",
},
{
id: 2,
날짜: "2023-12-33 12:00:23",
작성자: "이다영",
제목: "Section 1.10.32 of \"de Finibus Bonorum et Malorum\", written ",
},
{
id: 3,
날짜: "2023-12-33 12:00:23",
작성자: "기다연",
제목: "1914 translation by H. Rackham",
},
{
id: 4,
날짜: "2023-12-33 12:00:23",
작성자: "우성원",
제목: "Section 1.10.33 of \"de Finibus Bonorum et Malorum\", written by Cicero in 45 BC",
},
{
id: 5,
날짜: "2023-12-33 12:00:23",
작성자: "이상우",
제목: "1914 translation by H. Rackham",
},
]
app.get('/posts', (req, res) => {
// for (let i = 0; i < posts.length; i++) {
// const post = posts[i]
// post.작성자 = post.작성자.substring(0, 1) + "**"
// }
const newPosts = posts.map((post) => {
return {
id: post.id,
날짜: post.날짜,
작성자: post.작성자.substring(0, 1) + "**",
제목: post.제목,
}
})
res.send(newPosts)
})
app.get('/post', (req, res) => {
res.send(posts[0])
})
app.get('/post-create', (req, res) => {
res.send('/post-create')
})
app.get('/post-modify', (req, res) => {
res.send('/post-modify')
})
app.get('/post-delete', (req, res) => {
res.send('/post-delete')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
JWT : json web token : json 형식으로 만든 웹 열쇠
어딘가에 접근하려고 할 때 열쇠가 있으면 접근 가능!보안 문 들어가려 함 : 정직원이 들어가면 : 인증
보안 문 들어가려 함 : 카드를 빌린 친구가 들어가면 : 인가회원 정보 > sign > 토큰
토큰 > verify > 회원 정보npm install jsonwebtoken iat : 토큰이 발급된 시간 (issued at)jsonwebtoken 실무에서는 배포 금지!! > 사이트 털린다~
const jwt = require('jsonwebtoken');
const user = {
name : "우준호",
id: "noggong",
}
const 임시출입증 = jwt.sign(user, "xxxxxx")
console.log("임시출입증 : ", 임시출입증)
const 입장하려는사람의정보 = jwt.verify(임시출입증, "xxxxxx")
User.find(입장하려는사람의정보.id)
console.log("입장하려는사람의정보:", 입장하려는사람의정보)