有没有人找到在KoaJS中使用passport-saml的方法?我已经设法找出了问题所在-- passport-saml使用了res.send,这在koa中不可用,但是到目前为止,我还没有找到解决这个问题的方法。
发布于 2016-10-05 13:31:35
我今天也在想同样的事情,偶然发现了这篇文章。没有基于koa的passport-saml实现,然而,有一个称为koa-passport的整洁的中间件模块,它向后兼容旧的passport策略,如passport-saml。它使用mock express request对象来弥补您在使用这些基于express的中间件时遇到的一些差距。
下面是设置的一个片段(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('/');
}
);https://stackoverflow.com/questions/39666002
复制相似问题