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("입장하려는사람의정보:", 입장하려는사람의정보)