2017-11-01 1 views
0

In express-jwt Homepage eine Funktion für das Erhalten json Web-Token von Kopf- oder Abfrage vorstellen, die wir als ausdrücklichen mittleren Verschleiß mit nutzen können und dies ist die Funktion:jwt mit jwt-express mit Middleware in Express.js

app.use(jwt({ 
secret: 'hello world !', 
credentialsRequired: false, 
getToken: function fromHeaderOrQuerystring (req) { 
if (req.headers.authorization && req.headers.authorization.split(' ') 
[0] === 'Bearer') { 
    return req.headers.authorization.split(' ')[1]; 
} else if (req.query && req.query.token) { 
    return req.query.token; 
} 
return null; 
} 
})); 

und ich express.Route() wie folgt aus:

app.use('/user',userRoute); 
app.use('/apps',appsRouter); 

Meine Frage ist, wie kann ich getToken() Funktion verwenden oder wie kann ich den Zugriff auf die token in Zulassung von Kopf.

Vielen Dank im Voraus.

Antwort

0

schließlich finde ich die Lösung. mit Middleware (jwt) kann das Token in Header überprüfen und, wenn diese nachweislich in req.user so, setzt in req.user wir alle Informationen von deceded jwt haben, nach dieser:

Standardmäßig wird das decodierte Token an req.user kann aber mit der Option requestProperty konfiguriert werden. jwt({ secret: publicKey, requestProperty: 'auth' });

0

Ich denke, wenn ich nicht falsch liege, brauchen Sie das Token oder das decodierte in Ihren Routen. Hier ist, wie ich es gemacht habe.

Ich habe eine Middleware-Funktion, die das Token für mich dekodiert, das die Benutzerinformationen enthält, und fügt dann das decodierte Objekt dem req-Objekt hinzu.

e.g route 
.put('/update', Middleware.decodeToken, yourCallBackfunction) 

decodeToken(req, res, next) { 


      authorization = req.headers.authorization.replace('Bearer ', ''), 
      decodeToken = Jwt.verify(authorization); 
      //verifies the token 

      req.tokenInfo = decodeToken 
      next(); 
    } 
Verwandte Themen