Express OpenId Connect应用程序在获取令牌后未重定向



我正在连接到一个Open Id Connect提供程序,这是我的代码。

const express = require('express');
const { auth } = require('express-openid-connect');
require('dotenv').config();
const app = express();
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
const jwt_decoder = require('jwt-decode');  
app.use(
auth({
issuerBaseURL: '***',
baseURL: 'http://localhost:3000',
clientID: 'client_id',
secret: 'long string',
idpLogout: false,
authRequired:true,
authorizationParams:{
response_type: 'code',
scope: 'openid profile email',
response_mode: "form_post",
redirectUriPath: 'http://localhost:3000/callback',

}
})
);
app.get('/', (req, res) => {
//console.log(res)
console.log(req.oidc.accessToken.access_token)
var decoded = jwt_decoder(req.oidc.accessToken.access_token); // Decoding
console.log(decoded);
res.send(`hello ${decoded.Username} from ${decoded.OrgName}`);

});
app.get('/callback', (req, res) => {
console.log("redirected")
res.send("logged in");
});
app.set('trust proxy', true);
app.listen(3000, () => console.log('listening at http://localhost:3000'))

授权后,它不会返回回调,而是返回"/"。我在那里得到了我能够解码的令牌。我已经要求身份验证服务器调用/回调,但它没有。

我认为您登录后不应该被重定向到/callback,相反,它会将您重定向到名为baseURL的东西。

以下是我们将auth添加到快递应用程序(/login/logout/callback路线(后提供的内容:

// The `auth` router attaches /login, /logout 
// and /callback routes to the baseURL
app.use(auth(config));

Express OpenID Connect SDK在后台处理这些路由。如果你想玩,你可以在添加app.use(auth(config))之前添加你的callback路线。但你的心流可能会被打破。

最新更新