[英]How to create a session in node.js with jade
我登錄了管理面板,現在我想實現該會話。 我正在大量搜索,但找不到如何在node.js中實現會話。 當我從管理面板登錄時,我只是想存儲令牌,而注銷會話將被破壞。 請幫忙。 這是我的登錄代碼:
`use strict`
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const User = require('../../user/auth/storage/model/User');
const userPopulation = require('../../user/auth/storage/populate/userPopulation');
var loginServices = {};
loginServices.login = (req, res, next) => {
// var rollno = param.rollno.toLowerCase()
// var email = req.body.email
// console.log(email);
return User.findOne({ email: req.session.email })
.then(user => {
console.log(user)
if (user && bcrypt.compareSync(req.body.password, user.password)) {
if (user.role == 'admin') {
const token = authToken(user)
res.render('../views/home', { token: token, user: user });
} else {
res.redirect('/auth/login');
}
}
else {
res.redirect('/auth/login');
// return Promise.reject(ES.authError('Authentication Failed'))
}
})
}
const authToken = (user) => {
return jwt.sign(
{
email: user.email,
_id: user._id,
role: user.role
},
process.env.SECRET_KEY,
{
expiresIn: process.env.TOKEN_EXPIRY_TIME
}
)
}
module.exports = loginServices;
這是app.js的代碼段:
require('dotenv').config();
const express = require('express');
const path = require('path');
const app = express();
const morgan = require('morgan');
const bodyParser = require('body-parser');
const session = require('express-session');
const mongoose = require('mongoose');
const Promise = require('bluebird');
mongoose.Promise = Promise;
app.use(morgan("dev"));
app.use('/uploads', express.static('uploads'));
app.use(session({
secret:'sssshhh',
saveUninitialized: true,
resave: true
}))
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json({
// Because Stripe needs the raw body, we compute it but only when hitting the Stripe callback URL.
verify: function(req,res,buf) {
var url = req.originalUrl;
console.log('------------'+url);
if (url.startsWith('/notify_transaction_success')) {
req.rawBody = buf.toString();
}
}}));
app.use(express.static(path.join(__dirname, '../public')));
我進行了大量搜索,但找不到任何解決方案。 請幫我。
基本上,我一步一步地完成了我的會話的設置並開始運行,僅對會話的存儲方式進行了一些修改。
啟動並運行后,可以將if(req.isAuthenticated())插入路由的中間件中,這很有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.