错误拦截器引起的不需要的错误 401
unwanted error 401 caoused by ErrorINterceptor
我遇到了与身份验证、登录和用户注册相关的 stackblitz 问题。问题是,当我尝试访问尚未登录的主页时,'ErrorInterceptor' 拦截了错误 401,并根据代码将我发送回登录。我不想要这种行为,即使我没有登录,我也想在主页中浏览。唯一受限访问的页面是 RestrictedPage,它在路由声明中有一个守卫。如果我对文件 'routing.module.ts 的第 16 行进行注释并解压缩第 17 行,则防护装置将被禁用,即使我没有登录也可以访问 RestrictedPage,但无论如何我都无法访问主页。基本上我找不到阻止我在未登录时访问主页的代码。这就是 stackblitz。谢谢! https://stackblitz.com/edit/authenticationdemo?file=src%2Fapp%2Frouting.module.ts
由于错误中的这一行 (22)-interceptor.ts
,您将被路由到登录
this.router.navigate(['/login']);
如果你想知道这行代码是什么时候执行的,那就是你在home.component.ts的ngOnInit中调用loadAllUsers()函数的时候。
您正在尝试加载所有用户,但您未通过身份验证。拦截器捕获此并将您重定向到您的登录页面。
如果您(暂时)删除对 ngOnInit 上的 loadAllUsers() 的调用,那么您将留在主页组件中。
你的守卫没有问题。你的警卫工作如预期:)
我遇到了与身份验证、登录和用户注册相关的 stackblitz 问题。问题是,当我尝试访问尚未登录的主页时,'ErrorInterceptor' 拦截了错误 401,并根据代码将我发送回登录。我不想要这种行为,即使我没有登录,我也想在主页中浏览。唯一受限访问的页面是 RestrictedPage,它在路由声明中有一个守卫。如果我对文件 'routing.module.ts 的第 16 行进行注释并解压缩第 17 行,则防护装置将被禁用,即使我没有登录也可以访问 RestrictedPage,但无论如何我都无法访问主页。基本上我找不到阻止我在未登录时访问主页的代码。这就是 stackblitz。谢谢! https://stackblitz.com/edit/authenticationdemo?file=src%2Fapp%2Frouting.module.ts
由于错误中的这一行 (22)-interceptor.ts
,您将被路由到登录this.router.navigate(['/login']);
如果你想知道这行代码是什么时候执行的,那就是你在home.component.ts的ngOnInit中调用loadAllUsers()函数的时候。
您正在尝试加载所有用户,但您未通过身份验证。拦截器捕获此并将您重定向到您的登录页面。
如果您(暂时)删除对 ngOnInit 上的 loadAllUsers() 的调用,那么您将留在主页组件中。
你的守卫没有问题。你的警卫工作如预期:)