2017-04-21 75 views
0

將node.js與Express服務器一起使用時,我的意圖是將已登錄的本地用戶保存在會話中,以便我可以從前端調用它並獲取用戶信息用戶實際上已登錄。未在護照快遞服務器上保存會話

爲此,我正在使用快速會話和護照。如果正確登錄並在req中保存會話,以下代碼將返回用戶。

我放棄了查詢並正確返回數據。

passport.use('local-login', new LocalStrategy({ 
    usernameField: 'email', 
    passwordField: 'pass', 
    passReqToCallback: true 
}, 
function(req, email, pass, done) { 

return modelUsers.login(email, pass, done); 

})); 

這是我的會話配置。

app.use(session({ 
    resave: true, 
    saveUninitialized: true, 
    secret: 'strongertogether', 
    cookie: { secure: false } 
})); // session secret 
app.use(passport.initialize()); 
app.use(passport.session()); // Persistent login sessions 
app.use(cors());    //Required for signin facebook 

據我瞭解,一旦登錄完成,用戶保存在會議和功能req.isAuthenticated()應該返回真值反而是假的,req.user是不確定的。

事實twitter和facebook會話正常工作。

從前端(Angular.js)我打電話給

app.get('/api/loggedin', usersController.loggedin); 

那去

function loggedin(req, res) { 
res.send(req.isAuthenticated() ? req.user : '0'); 
} 

版本:

「明示」:「^ 4.9.3 「

」express-session「:」^ 1.11.3「

「護照本地」: 「^ 1.0.0」

「護照」: 「^ 0.2.2」

+0

我沒有經過你的代碼,但我是這個蘇格蘭有助於瞭解你的問題'https://scotch.io/tutorials/easy-node-認證的建立和local'。我使用相同的方法,對我來說工作得很好。經過鏈接可能我使用的是缺少的東西。 –

回答