2017-11-13 8 views
1

こんにちは私はエクスプレスフレームワークを使用してnodeJsの模擬認証に取り組んでいます。認証にはpassport-jwtとjasonwebtokenを使用しています。私はapiを作って、郵便配達員でうまく働いています。しかし、私はフロントエンドで立ち往生しています。私はフロントエンド側で保護されたAPIを使用することができません。郵便受けでは、ヘッダーを使ってトークンを送信してもうまくいきます。しかし、トークンを送信してフロントエンド側から確認するにはどうすればいいですか? 私のコードは次のとおりです。expressjsのjson Webトークンのヘッダーを設定するには?

app.post("/login", function(req, res) { 
    if(req.body.name && req.body.password){ 
    var name = req.body.name; 
    var password = req.body.password; 
    } 

    var user = users[_.findIndex(users, {name: name})]; 
    if(! user){ 
    res.status(401).json({message:"no such user found"}); 
    } 

    if(user.password === req.body.password) { 

    var payload = {id: user.id}; 
    var token = jwt.sign(payload, jwtOptions.secretOrKey); 
    res.json({message: "ok", token: token}); 
    } else { 
    res.status(401).json({message:"passwords did not match"}); 
    } 
}); 

とトークンが有効であれば、このPOSTメソッドを使用すると、身体またはリクエストのヘッダーにユーザー名とパスワードを送信しているこのページ

app.get("/secret", passport.authenticate('jwt', { session: false }), function(req, res){ 
     res.json("Success! You can not see this without a token"); 

    }); 
+0

にリダイレクトする必要があります... ?ボディ内に –

+0

があり、bodyパーサーを使ってそこから取得します。 – Andrew

+0

問題は解決しましたか? –

答えて

0
npm install cookie-parser 

var cookieParser = require('cookie-parser') 
app.use(cookieParser()) 
app.use(function (req, res, next) { 
var cookie = req.cookies.jwtToken; 
if (!cookie) { 
    res.cookie('jwtToken', theJwtTokenValue, 
      { maxAge: 900000, httpOnly: true }); 
} else { 
    console.log('let's check that this is a valid cookie'); 
    // send cookie along to the validation functions... 
} 
next(); 
}); 
+0

jwTokenどこから来たのですか? – Andrew

関連する問題