簡體   English   中英

Flash消息返回[object Object](節點Express Passport)

[英]flash message returning [object Object] (Node Express Passport)

我正在使用passport.js,如果用戶名或密碼設置不正確,則想返回一條簡短消息。 所有邏輯均已設置,並且之前已經起作用。 但是我以某種方式破壞了該功能,即使我按1拷貝了工作版本,該功能仍然無法正常工作。我的應用程序中具有Flash消息傳遞設置,該設置對於所有其他不涉及passport.js的Flash消息都可以正常使用。

但是,如果我嘗試登錄,則刷新消息為空,並且我收到console.log的[object Object]

問題1 :是否可以訪問[object Object]代表的所有信息?

問題2 :有沒有辦法console.log在顯示之前刷新什么? 我將如何進入那部分課程?

路線:

router.post('/',
    passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true }),
  function(req, res) {
    console.log('Login success.');
});

發送上下文的閃存消息的密碼:

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.getUserByUsername(username, function(err, user){
      if (err) throw err;
      if (!user) {
        console.log('A user tried logging in, but username input returned unknown.');
        return done(null, false, {message: 'Unknown user.'});
      }
      User.comparePassword(password, user.password, function(err, isMatch){
        if(err) throw err;
        if(isMatch) {
          return done(null, user);
        } else {
          console.log('A user tried logging in, but password input returned invalid.');
          return done(null, false, {message: 'Invalid password.'});
        }
     });
    });
  }
));

在我的視圖中顯示帶有把手的消息:

{{#if error_msg}}
  <div class="alert alert-danger">{{error_msg}}</div>
{{/if}}
{{#if error}}
  <div class="alert alert-danger">{{error}}</div>
{{/if}}

(在較舊的分支中,它以error_msg返回-在當前分支中,[object Object] console.log僅返回錯誤)

提前致謝!

通過刪除handlebars-helpers庫修復了問題,該庫引入了有關Flash消息傳遞的一些問題。 (僅結合Passport處理Flash消息的方式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM