Guardando JWT en una 쿠키
Cuando estamos desarrollando una SPA puede resultarnos muy fácil utilizar el localStorage o el sessionStorage para persistir nuestro token en el lado del cliente. Aunque esto puede ser fácil, tiene un costo de seguridad 상당한. Por lo tanto, un mecanismo más seguro para persistir nuestro token de autorización, es guardarlo en una cookie. Veamos는 Express와 백엔드 앱을 모두 지원합니다.
Express Cookie-Parser에서 미들웨어를 먼저 설치하십시오.
추가로, 새로운 서버 웹을 위한 기본 모듈을 설치하십시오.
npm i express express-jwt jsonwebtoken cors cookie-parser --save
Este 미들웨어 inyecta las cookies proofientes en el request desde el cliente a nuestro objeto req. Este 미들웨어 facilita la lectura de las cookies al procesar solicitudes a nuestros endpoints.
Postiormente podemos crear nuestra cookie una vez el token ha sido firmado y la cookie contendrá dicho token.
// server.js
const express = require('express');
const jwt = require('express-jwt');
const jsonwebtoken = require('jsonwebtoken');
const cors = require('cors');
const jwtSecret = process.env.SECRET;
const app = express();
app.use(cors());
app.use(cookieParser());
app.use(
jwt(
{
secret: jwtSecret,
algorithms: ['HS256'],
getToken: req => req.cookies.token
}));
app.post('/login', (req, res) => {
let authenticatedUser;
// implementación del mecanismo de autenticación. buscar las credenciales en la base de datos u otro método, etc.
// al finalizar el mecanismo anterior, pasamos a asignarle un valor a authenticatedUser
const token = jsonwebtoken.sign(authenticatedUser, jwtSecret);
res.cookie('token', token, { httpOnly: true });
res.json({ success: 'welcome' });
});
app.listen(3000);
la línea 19 es la clave en este punto. En esta instrucción estamos logrando 2 objetivos:
¿cómo validamos el token una vez comencemos a recibir request desde el cliente autenticado?
Es muy sencillo, hagamos un zoom a nuestro código
app.use(
jwt(
{
secret: jwtSecret,
algorithms: ['HS256'],
getToken: req => req.cookies.token
}));
Notamos, para que el middleware express-jwt, valide el token alojado en las cookies, es necesario una función corta que le avise al middleware dónde debe ir a buscar el token, en este caso en el objeto req en el atributo cookies, subatributo 토큰(recordemos que cookie-parser se encarga de hacer la inyección de las cookies en el objeto req).
De esta manera podemos utilizar nuestros JWT alojándolos en Cookies.
Reference
이 문제에 관하여(Guardando JWT en una 쿠키), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cyberdelahoz95/guardando-jwt-en-una-cookie-3668텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)