如何解决身份验证后重定向上的adal-angular4无限循环
我正在构建一个Angular8应用程序,使用adal-angular4根据Microsoft Azure Active Directory对用户进行身份验证。我已经设置了ASP.NET核心API,并与Azure上的客户端应用程序关联 我已按照以下文档设置Active Directory:- 下面是使用adal-angular4设置Angular应用程序和.NET Core API的步骤:- 重定向URL似乎有效,因为我的应用程序中正确的回调组件被命中。然而,在这一点上,应用程序进入了一个无休止的循环,重新尝试登录和重定向。最终登录尝试产生异常“我们无法让您登录”。请再试一次,可能是因为被锁定了 在我的app.module.ts中:-如何解决身份验证后重定向上的adal-angular4无限循环,angular,authentication,azure-active-directory,adal,adal-angular4,Angular,Authentication,Azure Active Directory,Adal,Adal Angular4,我正在构建一个Angular8应用程序,使用adal-angular4根据Microsoft Azure Active Directory对用户进行身份验证。我已经设置了ASP.NET核心API,并与Azure上的客户端应用程序关联 我已按照以下文档设置Active Directory:- 下面是使用adal-angular4设置Angular应用程序和.NET Core API的步骤:- 重定向URL似乎有效,因为我的应用程序中正确的回调组件被命中。然而,在这一点上,应用程序进入了一个无休
providers: [
AdalService, { provide: HTTP_INTERCEPTORS, useClass: AdalInterceptor, multi: true },
RefreshTokenService
我的adal配置文件:-
private adalConfig = {
tenant: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
clientId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
redirectUri: 'http://localhost:4200/auth-callback',
postLogoutRedirectUri: "http://localhost:4200/end-session",
endpoints: { "https://visionapi2019.azurewebsites.net": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" },
cacheLocation: 'localStorage'
};
constructor(private adal: AdalService){
this.adal.init(this.adalConfig);
}
ngOnInit() {
this.adal.login();
}
在我的回调组件中,我有以下内容:-
ngOnInit() {
this.adal.handleWindowCallback();
this.router.navigate(['test-api']);
}
导航到组件“测试api”可以工作,但随后无限循环开始
谢谢 解决了这个问题。我在路由器中使用了[RouterModule.forRoot(routes,{useHash:false})],还从app.component中的ngOnInit()中删除了这个.adal.login()-我猜它是在为每个重定向重新尝试登录,然后由于url中的哈希删除id_令牌而失败。现在登录和重定向工作正常。解决了问题。我在路由器中使用了[RouterModule.forRoot(routes,{useHash:false})],还从app.component中的ngOnInit()中删除了这个.adal.login()-我猜它是在为每个重定向重新尝试登录,然后由于url中的哈希删除id_令牌而失败。现在登录和重定向工作正常。您看到控制台错误了吗?不太清楚-有时很难说,因为循环发生得太快了。但偶尔我也会看到这样的情况:“sockjs.js:2998 WebSocket连接到'ws://localhost:4200/sockjs node/455/b4sklziq/WebSocket'失败:WebSocket在连接建立之前已关闭。”你能检查一下这个链接是否为你提供了清晰的信息吗?谢谢没有什么明显的迹象,但我会继续研究。解决了!我在路由器中使用了[RouterModule.forRoot(routes,{useHash:false})],还从ngOnInit()中删除了这个.adal.login()在app.component中-我猜它正在为每个重定向重新尝试登录,然后由于url中的哈希删除id_令牌而失败。您是否看到任何控制台错误?不是真的-有时很难说,因为循环发生得太快了。但偶尔我也会看到这样的情况:“sockjs.js:2998 WebSocket连接到'ws://localhost:4200/sockjs node/455/b4sklziq/WebSocket'失败:WebSocket在连接建立之前已关闭。”你能检查一下这个链接是否为你提供了清晰的信息吗?谢谢没有什么明显的迹象,但我会继续研究。解决了!我在路由器中使用了[RouterModule.forRoot(routes,{useHash:false})],还从app.component中的ngOnInit()中删除了这个.adal.login()-我猜它是在为每个重定向重新尝试登录,然后由于url中的哈希删除id_令牌而失败。