2017-08-16 3 views
1

Ich versuche derzeit, Pass-IDAP und Passport-JWT zu meinem Rest API zu implementieren. Für das Routing verwende ich pleerock/routing-controllers, die eine Möglichkeit zur Autorisierung hat, aber es funktioniert mit Boolean und Pass arbeitet mit mir ehrlich gesagt nicht. Ich bin mir nicht einmal sicher, ob es möglich ist, die beiden zu kombinieren.Wie kombiniere ich Reisepass mit Routing-Controller?

Derzeit AuthorizationChecker gibt false zurück, weil ich weiß nicht, wie passport.authenticate in einen boolean zu machen.

useExpressServer(app, { 
controllers: [UserController, IssueController, LoginController], 
authorizationChecker: async (action: Action) => { 
    return false; 
} 
@Authorized() 
@Get("/test") 
test(@Res() response: Response){ 
    response.send("Test done.") 
} 

Wie passport.authenticate() mit Routing-controlls Genehmigung benutzen?

+0

Haben Sie eine Lösung für diese kommen? Ich versuche das Gleiche zu tun. Ich denke, globale Middleware dafür, mit Pass-jwt. –

+0

@ ØysteinAmundsen Ich habe meine Antwort bearbeitet –

Antwort

0

zu verwenden authenticate() Sie haben es als Middleware zu verwenden. Hier ist die link auf Routing-Controller, wie Middleware zu verwenden. Für die authenticationChecker

import * as jwt from 'jwt-simple'; 

currentUserChecker: async (action: Action) => { 
     const token = action.request.headers["authorization"]; 
     console.log(token) 
     let key= jwt.decode(token, "Banana"); 
     console.log(key) 
     let user = await mongoose.model("users").findOne({'key': key.key}); 
     if (user != null && token != null) return user; 
    } 

Dies ist ein Set up für jwt Authentifizierung mit Pass jwt

Verwandte Themen