2016-09-23 9 views
0

Кто-нибудь нашел способ использовать паспорт-saml с KoaJS? Мне удалось идентифицировать проблему - паспорт-saml использует res.send, который недоступен в koa, но мне пока не удастся найти способ вокруг него.Использование паспорт-saml и Koa?

ответ

2

Мне было интересно то же самое сегодня и наткнулся на этот пост. Нет никакой реализации паспорт-saml на основе koa, однако есть аккуратный модуль промежуточного программного обеспечения под названием koa-passport, который обратно совместим со старыми паспортными стратегиями, такими как passport-saml. Он использует объект кучного экспресс-запроса, чтобы преодолеть некоторые пробелы, с которыми вы сталкиваетесь, с этими средними средними на основе экспресс.

Вот фрагмент установки (full sample here on github):

// passport.js 
const Saml = require('passport-saml').Strategy, 
     passport= require('koa-passport'); 

passport.serializeUser((user, done) => done(null, user)); 
passport.deserializeUser((user, done) => done(null, user)); 

passport.use(new Saml(config, (profile, done) => done(null, profile) }); 
module.exports = passport; 

Вход и Callback маршруты

// app.js 
const app = Koa(); 

app.keys = ['abc']; 

app.use(session({key: 'test.cookie'})); 
app.use(passport.initialize()); 
app.use(passport.session()); 

router.get('/login', passport.authenticate('saml', 
    { 
     successRedirect: '/', 
     failureRedirect: '/login' 
    }) 
); 

router.post('/login/callback', passport.authenticate('saml', 
    { 
     failureRedirect: '/', 
     failureFlash: true 
    }), 
    function *consume() { 
     this.redirect('/'); 
    } 
); 

 Смежные вопросы

  • Нет связанных вопросов^_^