2017-06-13 8 views
0

ドキュメントを見て、コーディングエラーは発生していませんが、メッセージは戻っていません。私が間違った電子メールとパスワードを入力した場合、私が受け取っているのは応答の中で無許可です。ここで Here is a image of the responseパスポートを使用して、ユーザーまたはパスワードが間違っているときにエラーメッセージを表示

コードです:

const passport = require('passport'); 
const User = require('../models/user'); 
const config = require('../config'); 
const JwtStrategy = require('passport-jwt').Strategy; 
const ExtractJwt = require('passport-jwt').ExtractJwt; 
const LocalStrategy = require('passport-local'); 

//creat local Strategy 
const localOptions = {usernameField: 'email'} 
const localLogin = new LocalStrategy(localOptions, function(email, password, done) { 
    User.findOne({email: email}, function(err, user) { 
    if(err) {return done(err);} 
    if(!user) { 
     return done(null, false, {message: 'Incorrect email'}); 
    } 

    //compare passwords - is `password` equal to user.password? 
    user.comparePassword(password, function(err, isMatch) { 
     if(err) {return done(err);} 
     if(!isMatch) { 
     return done(null, false, {message: 'Incorrect password'}); 
     } 
     return done(null, user); 
    }); 
    }); 
}); 
//Setup options for JWT Strategy 
const jwtOptions = { 
    jwtFromRequest: ExtractJwt.fromHeader('authorization'), 
    secretOrKey: config.secret 
}; 

//Create JWT Strategy 
const jwtLogin = new JwtStrategy(jwtOptions, function(payload, done) { 
    //See if the user ID in the payload exists in our database 
    // if it does, call 'done' with that user, otherwise 
    // call done without a user object 
    User.findById(payload.sub, function(err, user) { 
    if (err) { return done(err, false); } 

    if (user) { 
     done(null, user); 
    } else { 
     done(null, false); 
    } 
    }); 
}); 
//Tell passport to use this Strategy 
passport.use(jwtLogin); 
passport.use(localLogin); 
+0

リンクされた画像にはヘッダーのみが表示されます。応答タブは空ですか? –

+0

レスポンスだけが不正な人物と表示されます。 –

答えて

0

あなたは

authRoutes.post('/login', AuthenticationController.login); 

route.js

authRoutes.post('/login', requireLogin, AuthenticationController.login); 

から行を削除しても、あなたのコントローラ内のコードの下に追加されなければなりません。

var employeeEmail = req.body.username; 
var employeePassword = req.body.password; 

User.findOne({ username: employeeEmail }, function(err, employee) 
{ 

if (err) { return next(err); } 

if (!employee) { return res.status(401).json("Incorrect email or password1"); } 

employee.comparePassword(employeePassword, function(err, isMatch) { 

if (err) { return next(err); } 

if (!isMatch) { return res.status(401).json("Incorrect email or password"); } 
    return res.status(200).json(employee); 
}); 
関連する問題