2016-09-23 4 views
0

誰かがKoaJSでパスポートsamlを使用する方法を見つけましたか?私は問題を特定することができました - パスポートsamlはkoaでは利用できないres.sendを使用していますが、私はそれまでの道のりを見つけることができません。パスポートsamlとコアを使用していますか?

答えて

2

私は不思議でした今日も同じことをして、このポストを見つけました。 koaベースのpassport-SAML実装はありませんが、passport-samlのような古いパスポート戦略と下位互換性のある、きちんとしたミドルウェアモジュールkoa-passportがあります。これは、偽の要求オブジェクトを使用して、これらのエクスプレスベースのミドルウェアと遭遇するギャップの一部を埋めるものです。

ここでセットアップ(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; 

ログインし、コールバックルート

// 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('/'); 
    } 
); 
関連する問題