我们正在运行一台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
}
}
直接在浏览器中导航到该路由会从azure提供程序返回我们信息。但是,如果我们尝试从前端客户端(即本地主机)转到该后端路由,则会抛出以下CORS错误
从原点“ null”到“ https://login.microsoftonline.com/ ...(从'https://port225.5874.com/api/v2/user/sso'重定向)的XMLHttpRequest的访问已被CORS策略阻止:没有'Access-Control-Allow-Origin'标头存在于请求的资源上。
对我们来说,这听起来像(我们可能是错的)'https://login.microsoftonline.com/中缺少Access-Control-Allow-Origin ...,但显然我们无法控制它。
似乎我们在前端丢失了某些东西,但不确定会是什么。有什么想法吗?
答案 0 :(得分:3)
前端应使用例如MSAL.js可以对用户进行身份验证,并在后端使用JWT身份验证。
或者您必须以某种方式告诉前端请求不要遵循重定向并检测情况。