20240130

귤금·2024년 1월 30일

Node.js 4기 TIL

목록 보기
25/86

Today?

Node.js 숙련주차 2주차

Access Token

  • 사용자 인증(로그인 등)이 완료된 후 해당 사용자를 인증하는 용도로 발급하는 토큰.
    • 쿠키에 jwt 설정하여 일정 시간 후 만료되는 구조도 여기 포함
      • 인증 여부는 확인해도 처음 토큰을 발급한 사용자가 정말 그 사용자인지까지 확인할 수는 없음...
      • 따라서 토큰 탈취를 항상 염두에 두고 피해 최소화하는 방향으로 개발해야 함.

Refresh Token

  • access 토큰을 재발급 받기 위한 토큰
    • 서버에서 리프레쉬 토큰을 디코딩하여 정보 확인을 한다. (서버에서 관리함)
    • 필요한 경우 서버에서 강제로 토큰을 만료시킬 수 있음
    • 토큰 탈취당할 경우에 대비하여 Refresh Token -> Access Token 단계를 거치는 것!!

개인과제

* jsonwebtoken

yarn add jsonwebtoken

JWT를 사용하여 데이터를 표현하기 위해 해당 모듈을 설치했다.
decode 메소드로 복호화하고, verify 메소드로 변조된 데이터인지 검증함...

* 로그인 기능 구현

JWT와 토큰을 사용하여 로그인 기능을 구현했다.


오늘 배운 것

회고

코드카타

문제 1

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

//내가 짠 코드
let solution = (n, m) => {
    let max = Math.max(m,n);
    let min = Math.min(m,n);
    let r = 0;
    for(let i=max; i>=1; i--){
        if(max%i == 0 && min%i == 0){
            r = i;
            break;
        }
    }
    return [r, n*m/r];
}

// 다른 사람 코드
function gcdlcm(a, b) {
    var r;
    for(var ab= a*b;r = a % b;a = b, b = r){}
    return [b, ab/b];
}

for문을 어떻게 쓴 걸까... r = a % b의 사용이 너무 신기했다 ㅠㅠㅠㅠ

0개의 댓글