Ich habe eine einfache Anwendung, die eine Express-Sitzung verwendet. Hier ist mein Eingabeskript, wo ich die Sitzung einleite.`req.session.secret` nicht in Routen mit Express-Sitzung definiert
export const app = express();
export const server = Server(app);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(session({
secret: "changed to nonsense string for this question",
resave: true,
saveUninitialized: true,
cookie: { maxAge: 60000 }
}));
app.use('/api/v1/auth', require('./users'));
Nach dem documents of express-session, sollte ich in der Lage sein, dies über req.session zuzugreifen. Ich möchte den geheimen Schlüssel für die Verwendung eines JSON-Tokens innerhalb einer Route erhalten. Hier ist, was ich tue:
export const routes = Router();
routes.post('/login', function (req, res, next) {
// ...
const token = jwt.sign(user, req.session.secret, { expiresIn: '5m' });
});
export default routes;
Aber es sagt immer wieder, dass die req.session.secret
nicht definiert ist. Was mache ich falsch? Wie greife ich auf das Sitzungsgeheimnis innerhalb einer Route zu?