Passport.js 将 azure-ad 身份验证 link 视为相对的,returns 404 尝试登录
Passport.js treating azure-ad authentication link as relative, returns 404 on attempted login
我们正在使用 passport-azure-ad
来允许我们域中的用户使用他们的 Microsoft AD 凭据登录到内部节点应用程序。我让这个系统以前只使用 1 个节点应用程序工作,但现在我们正在尝试一个新系统,我们在本地有 2 个单独的应用程序 运行 和 PM2,并通过 IIS 在相同的 URL 下为它们提供服务,但是你像这样访问每个应用程序:
我的网站。com/app1 或 我的网站。com/app2
只有第二个应用程序需要身份验证。我 运行 遇到的问题是当您点击登录时,passport.authenticate
方法似乎试图重定向到相对授权 link:
mywebsite.com/{租户}/oauth2/v2.0/authorize
,而不是实际的授权端点是:
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
有谁知道这可能是为什么以及我可以做些什么来阻止 passport 像亲戚一样对待 auth 端点 link?这会导致每次用户点击 /login 时出现 404,因为 /{tenant}/oauth2/v2.0/authorize 路由不存在。
愿日后发现此问题的任何人安息。
对我来说,解决方案如下:
我们正在使用 passport-azure-ad
来允许我们域中的用户使用他们的 Microsoft AD 凭据登录到内部节点应用程序。我让这个系统以前只使用 1 个节点应用程序工作,但现在我们正在尝试一个新系统,我们在本地有 2 个单独的应用程序 运行 和 PM2,并通过 IIS 在相同的 URL 下为它们提供服务,但是你像这样访问每个应用程序:
我的网站。com/app1 或 我的网站。com/app2
只有第二个应用程序需要身份验证。我 运行 遇到的问题是当您点击登录时,passport.authenticate
方法似乎试图重定向到相对授权 link:
mywebsite.com/{租户}/oauth2/v2.0/authorize
,而不是实际的授权端点是:
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
有谁知道这可能是为什么以及我可以做些什么来阻止 passport 像亲戚一样对待 auth 端点 link?这会导致每次用户点击 /login 时出现 404,因为 /{tenant}/oauth2/v2.0/authorize 路由不存在。
愿日后发现此问题的任何人安息。
对我来说,解决方案如下: