Plantilla de autenticación para Node.js/Express que implementa inicio de sesión mediante GitHub OAuth, generación de JWT y almacenamiento seguro en cookies.
- Autenticación social con GitHub via Passport.js.
- Emisión de JWT firmados y almacenamiento en cookies httpOnly.
- Ruta
auth/currentpara obtener el usuario autenticado. - Middleware de autorización para proteger rutas.
- Plantillas Handlebars para vistas de login y dashboard.
- Node.js, Express
- Passport.js (GitHubStrategy)
- jsonwebtoken
- cookie-parser
- Handlebars
git clone https://github.com/CastoGil/login-passport-JWT-cookie.git
cd login-passport-JWT-cookie
npm ci
cp .env.example .env # Rellena GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, JWT_SECRET
npm start
- Visita
/loginpara iniciar sesión con GitHub. - Tras la autenticación serás redireccionado a
/con un JWT en cookie. - Accede a
/api/users/currentpara obtener tus datos.
- Configura correctamente las variables de entorno para GitHub OAuth.
- Asegúrate de usar cookies
httpOnlyysecureen producción.
- El usuario hace clic en
Iniciar sesión con GitHub(/auth/github). - Passport redirige a GitHub; al volver, GitHub llama a
/auth/github/callback. - En el callback se genera un JWT (ver
src/utils/jwt.js) y se guarda en una cookiehttpOnly. - La ruta
/api/users/currentrecupera al usuario actual a partir del JWT. - Middleware de autorización protege las rutas privadas.
src/config/passport.js: Configura la estrategia de GitHub para Passport.src/routes/auth.js: Define rutas de login y callback.src/routes/users.js: Contiene la ruta/currenty otras relacionadas.src/utils/jwt.js: Funciones para firmar y verificar JWT.src/views/: Plantillas Handlebars de login y dashboard.