mirror of
https://github.com/jlengrand/adyen-web-demo.git
synced 2026-03-10 08:01:24 +00:00
34 lines
933 B
JavaScript
34 lines
933 B
JavaScript
'use strict';
|
|
const express = require('express');
|
|
const passport = require('passport');
|
|
const bodyParser = require('body-parser');
|
|
const jwt = require('jsonwebtoken');
|
|
|
|
const config = require('../../config');
|
|
|
|
const router = express.Router();
|
|
|
|
const createAuthToken = function (user) {
|
|
return jwt.sign({ user }, config.JWT_SECRET, {
|
|
subject: user.username,
|
|
expiresIn: config.JWT_EXPIRY,
|
|
algorithm: 'HS256'
|
|
});
|
|
};
|
|
|
|
const localAuth = passport.authenticate('local', { session: false });
|
|
router.use(bodyParser.json());
|
|
router.post('/login', localAuth, (req, res) => {
|
|
const authToken = createAuthToken(req.user.apiRepr());
|
|
res.json({ authToken, userId: req.user.apiRepr().id });
|
|
});
|
|
|
|
const jwtAuth = passport.authenticate('jwt', { session: false });
|
|
|
|
router.post('/refresh', jwtAuth, (req, res) => {
|
|
const authToken = createAuthToken(req.user);
|
|
res.json({ authToken });
|
|
});
|
|
|
|
module.exports = { router, jwtAuth };
|