2016-08-08 8 views
0

versucht, Anmeldung mit Pass-JWT zu implementieren. Sowohl die Anmeldung als auch die Anmeldung funktionieren einwandfrei, Token wird bei der Anmeldung erstellt und an den Client gesendet, der sie speichert und zurückgibt.passpjs jwt, Clientantwort wird nicht authentifiziert

Nach der Anmeldung Authentifizierung Anfrage App erreicht und nichts passiert .. Hilfe? :)

JWT Strategie

var JwtStrategy = require('passport-jwt').Strategy, 
    ExtractJwt = require('passport-jwt').ExtractJwt; 
    var opts = {} 
    opts.jwtFromRequest = ExtractJwt.fromAuthHeader(); 
    opts.secretOrKey = 'secret'; 
    opts.issuer = "http://localhost:3000"; 
    opts.audience = "http://localhost:3000"; 

    passport.use('jwt', new JwtStrategy(opts, function(jwt_payload, done) { 
     console.log(1) 
     return User 
      .findOne({where : {username : jwt_payload.email } }) 
      .then(function (user) { 
       if(user === null){ 
        return TempUser 
          .findOne({where : {username : jwt_payload.email } }) 
          .then(function(user){ 
           return user === null ? 
            done(null, false, 'login error, please try again') : 
            done(null, false, 'email verification needed'); 
          }); 
       } else { 
        if (bcrypt.compareSync(password, user.dataValues.password)){   
          done(null, user); 
        } else { 
         done(null, false, 'login error, please try again'); 
        } 

      } 
     }); 
    })); 

Strecke

router.get('/login/check', function(req, res, next) { 
     passport.authenticate('jwt', function(err, user, info) { 
      console.log(err) 
      res.json({'success' : true}); 
     }) 
    }) 

req.query von Client zurückgegeben

GET /login/check?%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJzaGFpLmthcGx1bkBnbWFpbC5jb20iLCJwYXN 
zd29yZCI6IiQyYSQxMCQ0YXpvSlVLMkltUkl3YWo0Uzlqd1RPVXh0RWIwYWphNW92UjRvUnV1QUFRdnJ5Z3g5cWttNiIsImNyZWF0ZWRBdCI6IjIwMTYtMDg 
tMDdUMTM6MjI6NDYuMzUyWiIsInVwZGF0ZWRBdCI6IjIwMTYtMDgtMDdUMTM6MjI6NTkuOTExWiIsImlhdCI6MTQ3MDY1NzY0MCwiZXhwIjoxNDcwNzU3NjQ 
wfQ.hyHDcmzJne-d6roRXBgC9aQDeZzQPgpkWWOZicQNc8c%22 - - ms - - 

Antwort

1

Sie sagen Passport-JWT für die in der Genehmigung Header suchen JWT, aber es scheint, dass Sie versuchen, den JWT als Abfragezeichenfolge zu übergeben.

Versuchen Sie, einen Header zu senden: Authentifizierung: „JWT“ + Token

Ich schrieb sogar ein Tutorial für sowohl die vordere und hintere Ende dieser, die Sie nützlich finden könnten.

http://blog.slatepeak.com/refactoring-a-basic-authenticated-api-with-node-express-and-mongo/

http://blog.slatepeak.com/build-a-react-redux-app-with-json-web-token-jwt-authentication/

+0

ja, dachte das gleiche. Aber das Setzen des Tokens im Header von der Client-Seite hat meinem Fall nicht geholfen. Was ich getan habe, war mit der Verwendung von Passport-JWT aufzuhören und ich vertraue jetzt nur noch auf die jsonwebtoken-Bibliothek für Sign/Verify – Skaplun

Verwandte Themen