2016-04-12 5 views
0

Ich verwende PassportJS, um meine node.js-Anwendung zu authentifizieren. Ich verwende die WSFED/ADFS-Strategie. Meine passport.serializeUser() und passport.deserializeUser() Funktionen funktionieren jedoch nicht. Sie werden nicht einmal angerufen. Die typische Lösung, die ich gefunden habe, ist hinzuzufügen app.use(passport.initialize()) und app.use(passport.session()) NACH app.use(session()), was ich tat, also bin ich nicht sicher, warum serializeUser() und deserializeUser() nicht aufgerufen werden. Hier ist mein Code:PassportJS serializeUser und deserializeUser funktioniert nicht

var express = require('express'), 
     app = express(), 
     bodyParser = require('body-parser'), 
     cookieParser = require('cookie-parser'), 
     session = require('express-session'), 
     passport = require('passport'), 
     wsfedsaml2 = require('passport-wsfed-saml2').Strategy; 

    //Middlewares 
    passport.use('wsfed-saml2', new wsfedsaml2({ 
     realm: 'https://localhost:3001', 
     identityProviderUrl: 'https://some_company.org/adfs/ls/', 
     thumbprint: '9.....4' 
    }, 
    function(profile, done) { 
     console.log(profile); 
     return done(null, new User(profile)); 
    })); 

    app.use(cookieParser()); 

    app.use(bodyParser.urlencoded({ 
     extended: true 
    })); 

    app.use(session({ 
     secret: 'keyboard cat', 
     resave: false, 
     saveUninitialized: true, 
     cookie: { secure: true } 
    })); 

    app.use(passport.initialize()); 
    app.use(passport.session()); 

    passport.serializeUser(function(user, done) { 
     console.log('In Serializer'); //does not print 
     done(null, user); 
    }); 

    passport.deserializeUser(function(user, done) { 
     console.log('In DeSerializer'); //does not print 
     done(null, user); 
    }); 

Kann jemand helfen?

Vielen Dank im Voraus!

Antwort

0

Bearbeitet: Ich denke, dass Sie die Pass-Strategie falsch konfiguriert. Mit Blick auf die docs, seine sah aus wie es sein sollte:

passport.use(new wsfedsaml2({ 
    realm: 'https://localhost:3001', 
    identityProviderUrl: 'https://some_company.org/adfs/ls/', 
    thumbprint: '9.....4' 
}, 
function(profile, done) { 
    console.log(profile); 
    return done(null, new User(profile)); 
})); 
+0

Yep - ich habe gerade versucht, es in dieser Reihenfolge .. es hat nicht funktioniert:/ –

+0

@ user1547174 Aktualisiert meine Antwort. –

Verwandte Themen