Authorization
welaundry 회원 인증 방식을 설명합니다.
왜 인증 절차가 필요한가
각 세탁소별 포스기를 이용하는 사장님들의 맞춤형 데이터를 제공하고 고객, 품목, 주소, 매출 등 각 게게별 고유한 정보를 처리하기 위해서 입니다.
적용 코드
CORS 작동방식 중
Credentials(자격 증명)
방식을 통해 브라우저 요청 헤더에 쿠키(인증 토큰)를 포함하여 서버단에서JWT
토큰을 검증하는 코드입니다.JWT(JSON Web Token)
은(는) JSON 포맷을 이용하여 사용자에 대한 property를 저장(생성)하는 Claim 기반의 WebToken입니다.토큰-기반-인증
시스템은 인증 받은 사용자들에게 토큰을 발급하고, 서버에 요청할 때마다 쿠키에 보관된 사용자 인증 정보를 검증하기 때문에,서버-기반-인증
방식 처럼 세션ID 토큰을 검증하기 위해 서버의 리소스를 많이 소모할 필요가 없습니다.
import jwt from 'jsonwebtoken';
import * as AuthRepository from '../data/auth.js';
import { config } from '../config.js'
const AUTH_ERROR = { message: '로그인이 필요한 서비스입니다.' }; // Authorization Error
export const isAuth = async (req, res, next) => {
let token;
if (!token) {
token = req.cookies['token'];
}
if (!token) {
return res.status(401).json(AUTH_ERROR);
}
// JWT(Json Web Token)
jwt.verify(
token,
config.jwt.secretKey,
async (error, decoded) => {
if (error) {
return res.status(401).json(AUTH_ERROR);
}
const user = await AuthRepository.findById(decoded.id);
if (!user) {
return res.status(401).json(AUTH_ERROR);
}
req.userId = user.id;
req.token = token;
req.userName = user.username;
next();
}
)
}
Last updated