2017-11-23 14 views
-1

app.get( "/ secret"、passport.authenticate( 'jwt'、{session:false})、function(req、res){ res.json( {message: "成功!トークンなしではこれを見ることはできません"}); });Express、PassportおよびJSON Webトークン(jwt)認証

私は不正な キーで郵便局員が、応答にチェックします:認証値:JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNTExNDMxNjcwfQ.wwt4sY8LDXg_UDqD9-uImdYe0dv-6Ya2IF8WA_Y57Qs

+0

あなたのpassport.jsファイルはどのように見えますか? –

+0

以下のコメントのために私の完全なコードをチェックしてください。 –

答えて

0

varが_ =( "lodash")を必要とします。

var express = require( "express");

var bodyParser = require( "body-parser");

var jwt = require( 'jsonwebtoken');

var passport = require( "パスポート");

varパスポートJWT = require( "passport-jwt");

var ExtractJwt =パスポートJWT.ExtractJwt;

var JwtStrategy = passportJWT.Strategy;

するvar jwtOptions = {}

jwtOptions.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken()。

jwtOptions.secretOrKey = 'tasmanianDevil';

VAR戦略=新しいJwtStrategy(jwtOptions、関数(jwt_payload、次){

console.log('payload received', jwt_payload); 

// usually this would be a database call: 

var user = users[_.findIndex(users, {id: jwt_payload.id})]; 

if (user) { 
    next(null, user); 
} else { 
    next(null, false); 
} 

})。

パスポート使用(戦略);

var app = express();

app.use(passport.initialize());

app.use(bodyParser.urlencoded({ 拡張:true })));

app.use(bodyParser.json())

app.get( "/秘密"、passport.authenticate( 'JWT'、{セッション:偽})、

関数(REQ、 res){

res.json({message: "Success! You can not see this without a token"}); 

});

+0

あなたのjwt_payloadのあなたのIDは 'jwt_payload._doc.id'ではなく' jwt_payload.id'に入っていますか? –

関連する問題