/ Sesje klienta / Node.js nie działają, gdy nie są używane jako bezpośrednie wywołanie zwrotne - javascript, node.js, express

Sesje klienta Node.js nie działają, gdy nie są używane jako bezpośrednie wywołania zwrotne - javascript, node.js, express

Za pomocą express.Router Próbuję utworzyć oprogramowanie pośrednie dla określonego routera w mojej aplikacji, który utworzy sesję i zarządza nią. To nie działa, jeśli sesja client-sessions nie jest wywoływany bezpośrednio przez Router().use. ZA undefined występuje błąd nazwy sesji.

Pomysł (nie działa)

auth.routes.js

import {Router} from "express";
import session from "client-sessions";
import authMiddleware from "./auth.middleware";
import authService from "./auth.service";

export default () => {
const router = Router();

router.use(authMiddleware.createCookie);

router.use(authMiddleware.authenticate);

return router;
};

auth.middleware.js

class authMiddleware {

static createCookie(req, res, next) {
session({
cookieName: "authenticated",
secret: "random_string_goes_here",
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000
});
next();
}

static authenticate(req, res, next) {
if (req.authenticated) {
// Check and redirect
} else {
req.authenticated.login = false;
}
next();
}
}

export default authMiddleware;

Wersja robocza

Zmienianie createCookie wezwanie do bezpośredniego utworzenia pliku cookie powoduje powyższe działa tak:

auth.routes.js

`
router.use(
session({
cookieName: "authenticated",
secret: "random_string_goes_here",
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000
})
);
`

Jestem całkiem nowy w Node.js, więc jakieś pomysły, jak ten pomysł może działać, czy po prostu czegoś mi brakuje?

Odpowiedzi:

0 dla odpowiedzi № 1

Wystąpił niezdefiniowany błąd nazwy sesji.

Mam na myśli, że muszę zapytać, ale zaimportowałeś client-sessions biblioteka w auth.middleware.js dobrze?