Nếu Web mà có nhiều micro-services (Nhiều cổng chạy trọng Node) thì dùng để npm install, npm start để chạy tất cả các cổng được cấu hình.
sử dụng modules:
jsonwebtoken
passport
passport-jwt
express-session
Cấu hình:
- SESSION
app.use(session({
secret: 'JackCodeHammer',
resave: false,
saveUninitialized: true,
cookie: {
secure: true
}
}));
JWT + Passport
const ExtractJwt = passportJWT.ExtractJwt; const JwtStrategy = passportJWT.Strategy;
const jwtOptions = {}; jwtOptions.jwtFromRequest = ExtractJwt.fromAuthHeader(); jwtOptions.secretOrKey = 'tasmanianDevil';
const strategy = new JwtStrategy(jwtOptions, (jwt_payload, next) => {
// Đoạn này sẽ phải gọi sang auth app let id = jwt_payload.id;
if (Math.floor(Date.now() / 1000) < jwt_payload.exp) { //JWT token is not expired
request.get({url: `http://localhost:3003/getuser/${id}`, json: true},
(err, response, body) => {
next(null, body);
}
);
} else {
let session = req.session;
session.login = false;
console.log('JWT token is expired');
}
});
passport.use(strategy);
app.use(passport.initialize());