2017-08-16 6 views
1

J'essaie actuellement d'implémenter passport-ldap et passport-jwt à mon API de repos. Pour le routage j'utilise pleerock/routing-controllers, qui a un moyen d'autorisation, mais cela fonctionne avec les booléens et le passeport fonctionne avec Honnêtement je ne sais pas. Je ne suis même pas sûr si c'est possible de combiner les deux.Comment combiner passeport avec routage-contrôleur?

Actuellement, AuthorizationChecker renvoie la valeur false car je ne sais pas comment transformer passport.authenticate en booléen.

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

Comment utiliser passport.authenticate() avec l'autorisation de routage-contrôleurs?

+0

Est-ce que vous venez avec une solution à cela? J'essaie de faire la même chose. Je pense à un intergiciel mondial pour cela, en utilisant le passeport-jwt. –

+0

@ ØysteinAmundsen j'ai édité ma réponse –

Répondre

0

Pour utiliser authenticate(), vous devez l'utiliser comme intergiciel. Voici le link sur les routeurs-contrôleurs comment utiliser Middleware. Pour le 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; 
    } 

Ceci est une mise en place pour l'authentification JWT avec passeport-JWT