Robím reaktívny projekt využívajúci expresné a pasové-miestne pre autentifikačnú časť na základe tohto tutoriálu: https://scotch.io/tutorials/easy-node-authentication-setup-and-local
Overenie funguje veľmi dobre, pridal somexpresný router na definovanie mojich ciest pre moje API, ale keď volám napríklad „/ api / myroute“, router Express vytvorí ďalšiu reláciu a stratím užívateľa, takže moja funkcia isLoggedIn
blokuje volanie mojich radičov, pretože v tejto novej relácii nie je žiadny používateľ. Moja otázka znie: Prečo router znovu vytvára reláciu? Čo je nesprávne v mojej konfigurácii? Tu je môj kód:
//server.js
var path = require("path");
var webpack = require("webpack");
var webpackDevMiddleware = require("webpack-dev-middleware");
var webpackHotMiddleware = require("webpack-hot-middleware");
var config = require("./webpack.config");
var express = require("express");
var app = express();
var port = process.env.PORT || 8080;
var mongoose = require("mongoose");
var passport = require("passport");
var flash = require("connect-flash");
var morgan = require("morgan");
var cookieParser = require("cookie-parser");
var bodyParser = require("body-parser");
var session = require("express-session");
var configDB = require("./config/database.js");
var router = express.Router();
// configuration ===============================================================
mongoose.connect(configDB.url); // connect to our database
require("./config/passport")(passport); // pass passport for configuration
// set up our express application
app.use(morgan("dev")); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser()); // get information from html forms
app.set("view engine", "ejs"); // set up ejs for templating
// required for passport
app.use(session({ secret: "secret" })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
var compiler = webpack(config);
app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: config.output.publicPath }));
app.use(webpackHotMiddleware(compiler));
app.use("/plugins/bootstrap", express.static(path.join(__dirname, "./plugins/bootstrap")));
app.use("/plugins/jquery", express.static(path.join(__dirname, "./plugins/jquery")));
app.use("/plugins/font-awesome", express.static(path.join(__dirname, "./plugins/font-awesome")));
// all of our routes will be prefixed with /api
app.use("/api", router);
// routes ======================================================================
require("./api/routes.js")(app, passport,router); // load our routes and pass in our app and fully configured passport
// launch ======================================================================
app.listen(port, function(error) {
if (error) {
console.error(error)
} else {
console.info("==>