身份验证失败,原因是:缺少自定义请求令牌 cookie

Authentication failed due to: Missing custom request token cookie

我们是 运行 一个 hapi JS 服务器,它使用 @hapi/bell 和 Azure 提供商策略在后端验证用户

基本上,假设我们在 port225.5874.com 上有我们的后端 运行 并且有一个登录路由 https://port225.5874.com/api/v2/user/sso。这是我们的路由服务器设置。

routes: {
            security: true,
            cors: {
                origin: [
                    `${configConst.client.host}:${configConst.client.hostport}`
                ],
                headers: ['Access-Control-Allow-Headers', 'Access-Control-Allow-Origin', 'Accept', 'Authorization', 'Content-Type', 'If-None-Match', 'Accept-language'],
                additionalHeaders: ['Access-Control-Allow-Headers: Origin, Content-Type, x-ms-request-id , Authorization'],
                credentials: true
            }
        }

直接在浏览器中导航到该路线 returns 我们从 azure 提供商那里获取信息。但是,如果我们尝试从前端客户端(即本地主机)转到该后端路由,则会抛出以下 CORS 错误

Access to XMLHttpRequest at 'https://login.microsoftonline.com/... (redirected from 'https://port225.5874.com/api/v2/user/sso') from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

对我们来说,这听起来像是(我们可能错了)'https://login.microsoftonline.com/...中缺少 Access-Control-Allow-Origin,但我们显然无法控制它。

似乎我们在前端遗漏了一些东西,但不确定是什么。有什么想法吗?

前端应该使用例如MSAL.js对用户进行认证,后台使用JWT认证。

或者你必须以某种方式告诉前端请求不要遵循重定向并检测这种情况。