我们使用WAM对用户进行身份验证。我们的角度应用程序部署在与WAM不同的域中。
由于CORS问题,我们无法对WAM进行REST调用。因此,我们考虑创建一个Iframe并调用WAM网址,以便在浏览器中设置Cookie。完成后,Angular应用程序中的Auth-Guard可以检查cookie并返回true。
不能选择WAM的CORS服务器端解决方案。我现在所做的是在索引HTML中创建了一个iframe。
<iframe src="wam login url to set cookies in the browser"
id="wamFrame"
style="display:none"></iframe>
在Main.ts中,加载iframe后,我会引导角度应用程序。
$('#wamFrame').on('load',()=>{
let p = platformBrowserDynamic().bootstrapModule(AppModule);
p.then(() => { (<any>window).appBootstrap && (<any>window).appBootstrap(); })
// .catch(err => console.error(err));
})
这很好,但是我想保留它作为Authentication Guard的一部分,而不是保留在main.ts内部。有没有更好的办法与守卫一起做呢?