mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const express = require('express');
|
|
const session = require('express-session');
|
|
const passport = require('passport');
|
|
const app = express();
|
|
app.use(session({
|
|
secret: 'keyboard cat'
|
|
}));
|
|
// handle login
|
|
app.get('/login', function (req, res) { // NOT OK - no regenerate
|
|
req.session.user = {
|
|
userId: something
|
|
};
|
|
res.send('logged in');
|
|
});
|
|
|
|
// with regenerate
|
|
app.get('/login2', function (req, res) { // OK
|
|
req.session.regenerate(function (err) {
|
|
req.session.user = {
|
|
userId: something
|
|
};
|
|
res.send('logged in');
|
|
});
|
|
});
|
|
|
|
// using passport
|
|
app.get('/passport', passport.authenticate('local'), function (req, res) { // NOT OK - no regenerate
|
|
res.send('logged in');
|
|
});
|
|
|
|
// with regenerate, still using passport
|
|
app.get('/passport2', passport.authenticate('local'), function (req, res) { // OK
|
|
var passport = req._passport.instance;
|
|
req.session.regenerate(function(err, done, user) {
|
|
req.session[passport._key] = {};
|
|
req._passport.instance = passport;
|
|
req._passport.session = req.session[passport._key];
|
|
res.send('logged in');
|
|
});
|
|
});
|