对于个人项目,我正在开发一个门户,该门户仅向连接的用户提供某些服务。当您未连接时,您将被重定向到管理身份验证流程(登录,密码恢复等)的密钥斗篷,并使用令牌重定向到我的角度应用程序,然后对于每次对我的Web服务的调用,我都会提供经过验证的令牌对于我的Web服务和密钥隐藏之间的每个请求。
我的问题是我的角度应用程序对Keycloak和Web服务有很大的依赖性。我希望我的应用程序具有弹性,并且至少在keycloak和/或Web服务处于脱机状态时,并且在发生任何错误或不良行为(例如:错误500)的情况下,都应做好准备。
我看到了我可以做的几件事:
这些是我现在拥有的想法,但我不确定这是正确的方法。
我没有找到任何相关的教程或文章来解释如何正确执行此操作(也许我使用了错误的关键字)
你有想法吗?
对于个人项目,我正在开发一个门户,该门户仅向连接的用户提供某些服务。未连接时,您将被重定向到管理身份验证流程的密钥斗篷(...
我相信最好的方法是拦截器,您可以在其中处理不同的错误。例如:
@Injectable()
export class RequestInterceptor implements HttpInterceptor {
intercept (request: HttpRequest<any>, next: HttpHandler) : Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError(error => {
if (error.status === 0) {
// Handle unreachable server
}
if (error.status === 401) {
// Handle unauthenticated user
}
if (error.status === 500) {
// Handle server error
}
return throwError(error);
})
);
}
}
您可以在重定向之前实施“运行状况检查”,但我在循环中看不到进行此检查的原因。您只能在实际重定向之前执行一次。但这仍然是幼稚的测试,因为在用户请求处理期间可能会出错,并且您希望能够从SPA覆盖它。