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을 추가하여 경로를 보호했습니다.
Reference
이 문제에 관하여(Node.js의 권한 부여, 알아야 할 모든 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/fredabod/authorization-in-nodejs-all-you-need-to-know-3fga
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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' });
}
};
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;
Reference
이 문제에 관하여(Node.js의 권한 부여, 알아야 할 모든 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fredabod/authorization-in-nodejs-all-you-need-to-know-3fga텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)