使用IBM Cloud AppID上的Passport NodeJS应用程序成功进行身份验证后,无法检索idToken、refreshToken和accessToken

nfs0ujit  于 2023-03-17  发布在  Node.js
关注(0)|答案(1)|浏览(144)

我正在开发一个NodeJS应用程序,该应用程序使用Passport进行身份验证,并部署在IBM Cloud AppID SAML上,虽然我能够使用AppID身份验证机制成功地对用户进行身份验证,但我无法检索应该在回调函数中返回的idToken、refreshToken和accessToken。
是否有人有过将AppID SAML与Passport一起使用的经验,并且知道可能导致此问题的原因,或者您是否有一个链接,可以找到有关此问题的文档?
如有任何帮助或建议,我们将不胜感激。谢谢。
我尝试登录到应用程序:

app.get('/api/iam/logonsso',
         passport.authenticate(WebAppStrategy.STRATEGY_NAME, {
             successRedirect: '/',
             forceLogin: true
         })
)

回调函数如下:

app.get('/api/iam/callback', passport.authenticate(WebAppStrategy.STRATEGY_NAME));
lnvxswe2

lnvxswe21#

成功验证后,访问令牌和身份令牌将存储在请求会话中。您可以通过调用以下命令从每个受保护资源访问它们:

req.session[WebAppStrategy.AUTH_CONTEXT].accessToken // raw JWT access token
req.session[WebAppStrategy.AUTH_CONTEXT].accessTokenPayload // decoded access token

req.session[WebAppStrategy.AUTH_CONTEXT].identityToken // raw JWT identity token
req.session[WebAppStrategy.AUTH_CONTEXT].identityTokenPayload // decoded identity token

相关问题