我正在尝试在我们的应用程序中实现SAML身份验证过程。
如果我错了,请纠正我。他们的服务提供商不在应用程序中,我们将使用IDP,在我们的示例中为Auth0。
该代码是如下所示的nodejs代码
const SamlStrategy = require('passport-saml').Strategy;
const passport = require('passport')
const express = require('express')
const bodyParser = require('body-parser')
const fs = require('fs')
passport.use(new SamlStrategy(
{
path: '/login/callback',
entryPoint: 'Identity Provider Login URL:',
issuer: 'passport-saml',
cert: fs.readFileSync("./cert.pem", "utf8"),
},
function (profile, done) {
console.log(profile)
return done();
})
);
const app = express()
const port = 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(passport.initialize())
app.post('/login/callback',
passport.authenticate('saml', {failureFlash: true}), (req, res) => {
console.log("test2")
}
);
app.post('/login/callback', (req, res) => {
console.log("test1")
console.log(req.body)
})
app.get('/test', (req, res) => {
res.status(200).send(here)
})
app.get('/login',
passport.authenticate('saml', {successRedirect: '/test', failureFlash: true})
, (req, res) => {
console.log("logged in")
}
);
app.get('/', (req, res) => {
console.log(req.account)
res.status(200).send("hello")
})
app.listen(port, () => {
console.log(`Server is listening on port ${port}`)
})
这是怎么回事: 1.我将重定向到Auth0上的登录页面 2.用我的用户登录 3.被重定向到回调URL,但是我是未经授权的,我不知道为什么我没有被重定向到successRedirect
请帮助我,很难找到有关在线的信息。
谢谢