2017-11-25 85 views
-1

我正在使用護照jwt在節點js中進行模擬身份驗證。我已經成功創建了api。我正在使用模板的把手。api在nodeJs中重定向?

假設用戶發佈登錄憑據(發佈)時,api應驗證用戶並返回json內容。我堅持在這裏如何重定向後重定向到另一個頁面。我不希望這在我的api。

我的代碼是這樣的:

app.post('/login', (req, res, next) => { 

     if (req.body.name == '' || req.body.password == '') { 
       res.status(401).send('Please fill all fields') 
     } else { 
      let name = req.body.name; 
      // let password = req.body.password; 
      // usually this would be a database call: 
      let user = users[_.findIndex(users, { 
       name: name 
      })]; 
      if (user === undefined) { 
        res.status(401).send('User not defined') 

      } else { 
       if (user.password === req.body.password) { 
        let payload = { 
         id: user.id 
        }; 
        let token = jwt.sign(payload, config.jwtSecret); 
         res.json({message: "ok", token: token}); 

       } else { 
         res.status(401).send('Password did not match') 

       } 
      } 
     } 
    }); 

我懷疑這是從這個API我怎樣才能重定向到下一個頁面,如果用戶進行身份驗證。我無法更改此API中的代碼,因爲我正在使用此api進行測試。

+0

你可以使用[中間件](http://expressjs.com/en/guide/using-middleware.html)與[護照](http://www.passportjs.org/) –

+0

你可以給任何好的例子或參考? – Andrew

+0

好吧我在評論 –

回答

0

我還是有點新的Node.js,但我相信重定向你可以使用

res.redirect("/pageyouwant");

也許在用戶通過驗證的支架,你可以用我上面寫的代碼。

順便說一句,也許嘗試我的代碼在那個地方

if (user.password === req.body.password) { 
     let payload = { 
      id: user.id 
     }; 
     let token = jwt.sign(payload, config.jwtSecret); 
     res.json({message: "ok", token: token}); 

     res.redirect("/pageyouwant"); // <-- This one right here 
} 

希望我可以幫你。

+0

沒有隊友..我不能在我的API中設置重定向字段... API是爲了一般目的 – Andrew