我使用用戶認證passport.js註銷,用戶成功登錄。 現在我試圖改變導航鏈接,即登錄註銷後,用戶成功登錄英寸後從登錄用戶登錄變化聯繫在Node.js的
的,我用下面的中間件在app.js文件
var express=require('express');
var path=require('path');
var bodyParser=require('body-parser');
var cookieParser=require('cookie-parser');
var passport=require('passport');
var LocalStrategy=require('passport-local').Strategy;
var expressSession=require('express-session');
var app=express();
require('./db');
var userModel=require('./models/usermodel');
var adminModel=require('./models/adminmodel');
app.use(function (req, res, next) {
res.locals.login = req.isAuthenticated();
next(); });
//Configuring Routes
var routes = require('./routes/index');
var register = require('./routes/register');
var login = require('./routes/login');
var admin = require('./routes/admin');
var addblog = require('./routes/addblog');
var admindashboard = require('./routes/admindashboard');
var adminviewblog = require('./routes/admin-view-blog');
var viewblog = require('./routes/view-blog');
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// app uses configuration
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'routes/uploads')));
app.use(expressSession({ secret: 'keyboard catoard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.use('/', routes);
app.use('/register', register);
app.use('/login', login);
app.use('/admin', admin);
app.use('/addblog', addblog);
app.use('/admindashboard', admindashboard);
app.use('/admin-view-blog', adminviewblog);
app.use('/view-blog', viewblog);
//passport configuration
/*=======passport configuration========*/
passport.use("userss", new LocalStrategy(userModel.authenticate()));
passport.use("adminn", new LocalStrategy(adminModel.authenticate()));
passport.serializeUser(function(user, done){
done(null, user.id);
});
passport.deserializeUser(function(id, done){
userModel.findById(id, function(err, user){
done(err, user);
});
});
passport.deserializeUser(function(id, done){
adminModel.findById(id, function(err, user){
done(err, user);
});
});
//create server
app.listen(3000, function(){
console.log('Server is running localhost:3000');
});
和EJS模板
<% if login %>
<li><a href="/logout">Logout</a></li>
<% else %>
<li><a href="/login">Login</a></li>
<li><a href="/register">Register</a></li>
<% endif %>
但它不是加工。 顯示以下錯誤的頁面。
SyntaxError: Unexpected identifier in F:\saurabh_sharma\nodejs\blogsystem\views\index.ejs while compiling ejs
at Function (native)
at Object.Template.compile (F:\saurabh_sharma\nodejs\blogsystem\node_modules\ejs\lib\ejs.js:464:12)
我GOOGLE了這個問題,但沒有找到解決方案。
如果有人對此有想法,請讓我知道。
謝謝。
我不認爲,除去多餘的deserializeUser(後你應該有deserializeUser()' –
確定...的'兩個定義),還是其不工作 –
什麼是你的護照代碼策略? –