Node.js의 권한 부여, 알아야 할 모든 것

승인이란 무엇입니까?🤔🤔🤔



권한 부여는 컴퓨터 프로그램, 파일, 서비스, 데이터 및 응용 프로그램 기능을 포함하여 시스템 리소스와 관련된 사용자/클라이언트 권한 또는 액세스 수준을 결정하는 데 사용되는 보안 메커니즘입니다. 권한 부여는 일반적으로 사용자 신원 확인을 위한 인증이 선행됩니다. 또는
권한 부여는 단순히 리소스에 대한 액세스 권한을 부여하거나 거부하는 프로세스입니다. 인증 후에 오는 것

그렇다면 인증이란 무엇입니까



간단히 말해서 사용자의 신원을 확인하는 프로세스입니다.



그런 다음 권한 부여는 사용자 또는 관리자로서 페이지에 대한 액세스 권한을 부여합니다.

Node.js에서 어떻게 해야 하나요?😣😣



걱정할 필요가 없습니다 아주 간단합니다
인증에 널리 사용되는 패키지는 JSONWEBTOKEN(JWT)입니다.

JSON웹토큰(JWT)



JSON 웹 토큰은 일부 클레임을 주장하는 JSON을 포함하는 페이로드의 선택적 서명 및/또는 선택적 암호화로 데이터를 생성하기 위해 제안된 인터넷 표준입니다. 토큰은 개인 비밀 또는 공개/개인 키를 사용하여 서명됩니다.

즉, JWT는 사용자 또는 관리자가 인증될 때 토큰을 생성합니다. 이제 경로 액세스를 시도할 때마다 SECRET 키가 생성된 토큰과 비교됩니다. 이것이 일치하지 않거나 토큰이 유효하지 않으면 이 페이지에 대한 액세스 권한이 부여되지 않습니다.




내 프로젝트에 BEARER 토큰을 사용했지만 OAuth2도 있습니다.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzMGE3MjQxNGE3MzFjZWY2MTE3NGY4MyIsImlhdCI6MTY2MTYyOTA5NiwiZXhwIjoxNjYxNzE1NDk2fQ.QYFUATkHwoXCO7x8-588KjLGnfy6OgG740OScGxCz6o => This is what a bearer token looks like.




exports.isAuth = async (req, res, next) => {
  try {
    const token = req.headers.authorization.split(' ')[1];

    if (!token) {
      return res.status(401).json({ message: 'Token Is missing' });
    }

    const decoded = await jwt.verify(token, process.env.SECRET_KEY);
    if (!decoded) {
      throw new Error();
    }
    req.user = decoded;
    next();
  } catch (e) {
    return res.status(401).json({ message: 'Token expired' });
  }
};


이것은 Authorization 파일이 어떻게 보이는지에 대한 예입니다.

이제 경로에서 코드 블록을 가져옵니다.




const express = require("express");
const { addHouse } = require("../controllers/house.controller");
const { isAuth } = require("../middleware/isAuth");

const router = express.Router();

router.post("/create", isAuth, addHouse);
module.exports = router;

`

이제 AUTHORIZATION을 추가하여 경로를 보호했습니다.

좋은 웹페이지 즐겨찾기