当前位置:  开发笔记 > 编程语言 > 正文

Passport Saml Loop

如何解决《PassportSamlLoop》经验,为你挑选了1个好方法。

我正在尝试在nodejs/angularjs项目中使用Passport-Saml.js进行ADFS识别.

    当我连接到我的网站时,我正确地重定向到我的ADFS门户.

    验证后ADFS门户正确重定向到回调.

    然后是回调循环.

Chrome控制台在循环播放时

我的路线(server.js):

app.post('/login/callback',
 function (req, res, next) {
  console.log('before');
  passport.authenticate('saml', function (err, user, info){
    console.log('good');

})(req, res, next);

});

我认为它停止在passport.authenticate工作('saml',函数(错误,用户,信息){因为"之前"输出消息可以在控制台中看到,但也不是屏幕截图中看到的"好".控制台

我的护照配置(/config/passport.js):

var
 fs = require('fs')
 , passport = require('passport')
 , SamlStrategy = require('passport-saml').Strategy
;

passport.serializeUser(function (user, done) {
 done(null, user);
});
passport.deserializeUser(function (user, done) {
 done(null, user);
});

passport.use(new SamlStrategy(
{
  entryPoint: 'https://logon.XXX.com/adfs/ls/',
  issuer: 'urn:backpack-test',
  callbackUrl: ' https://backpack-test.XXX.com/login/callback',
  cert: 'MIIC6D...,
  authnContext:         'http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password',
  //acceptedClockSkewMs: -1,
  identifierFormat: null,
  //signatureAlgorithm: 'sha256'
},
function (profile, done) {
 return done(null,
  {
        upn: profile['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn'],
        // e.g. if you added a Group claim
        group: profile['http://schemas.xmlsoap.org/claims/Group']
    });
    }
    ));

module.exports = passport;

我怀疑我的设置可能不正确但是有任何详细的护照日志 - Saml以缩小我的故障排除范围.



1> perseus..:

也许是这个问题: 检查这个bug

只需添加body-parser即可

var bodyParser = require('body-parser');
...
app.use(bodyParser.urlencoded({extended: true}));

它对我有用.也许它可以帮助别人......

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有