使用Proxy.Conf.js的Angular 8显示用户名和密码框

时间:2019-11-22 16:07:55

标签: angular .net-core proxy

我有一个angular 8应用程序和一个单独的.net core 3 API,该API具有一些需要Windows身份验证的方法,因为它们必须获取用户身份。 API在https://localhost:44328上运行,而角度应用程序在http://localhost:4100上运行。我有一个代理设置可以解决cors问题,并在API上启用Windows身份验证和匿名身份验证。

我一直遇到的问题是,有角度的应用程序第三次调用控制器上具有[Authorize]属性的API方法后,会随机弹出一个用户名和密码框。我在某处读到这是@ angular-devkit中的build-webpack早期版本中的一个错误,但我现在正在最新版本(0.803.15)上运行,但仍然遇到此问题。有谁知道解决此问题的方法或使用代理的替代方法?

这是我的proxy.cong.js文件。

    const Agent = require('agentkeepalive').HttpsAgent;

module.exports = {
        '/api': {
        target: 'https://localhost:44328/',
            secure: false,            
            agent: new Agent({
                maxSockets: 100,
                keepAlive: true,
                maxFreeSockets: 10,
                keepAliveMsecs: 100000,
                timeout: 6000000,
                freeSocketTimeout: 90000
            }),
            changeOrigin:true,
        onProxyRes: proxyRes => {
            let key = 'www-authenticate';
            proxyRes.headers[key] = proxyRes.headers[key] && proxyRes.headers[key].split(',');
        }
        }
};

1 个答案:

答案 0 :(得分:1)

如果还有其他人遇到此问题,那是因为我也在使用HTTP拦截器将请求上的withCredentials标志设置为true。我认为这会干扰代理conf文件,因此在开发模式下删除拦截器可以解决此问题。