2017-11-25 7 views
-1

パスポート、jwtを使用してノードjsでモック認証を行っています。私は正常にAPIを作成しました。私はテンプレート用のハンドルバーを使用しています。nodeJsのAPIリダイレクト?

ユーザがログイン(投稿)するための信用証明書を発行すると、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://www.passportjs.org/)で[ミドルウェア](http://expressjs.com/en/guide/using-middleware.html)を使うことができます。 –

+0

例またはrefrence ?? – Andrew

+0

いいえ私はコメントの前に参考にします –

答えて

0

あなたはたぶん、ユーザーが認証されブラケットに

res.redirect("/pageyouwant");

を使用することができ、私はまだのNode.jsにちょっと新しいですが、私はリダイレクトすると信じて、私は上記の書いたコードを使用することができます。

ところで、多分その場所に自分のコードを試してみてください

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

関連する問題