我正在使用角度应用的spring boot微服务。我正在使用UAA作为授权服务器。如果会话过期意味着应用程序应该弹出消息并重定向到登录页面。如何以角度实现这一点?
任何人都能提供解决方案吗?
谢谢和问候
Shilpa Kulkarni
答案 0 :(得分:0)
您需要检查HTTP
个请求,例如,如果会话(令牌)过期,并且用户尝试从客户端点击某些HTTP调用,那么服务器必须返回一些相关的状态代码让我们说它是401.
因此,在这种情况下,您将检查服务器是否正在使用状态代码401
进行响应,然后显示弹出窗口并重定向到log in
屏幕。
答案 1 :(得分:0)
您可以使用有角度的 http-interceptor 来拦截您的所有请求。当您的令牌或会话过期时,http响应将为 401(未经授权)。基于此,您可以将用户重定向到登录路由。 请参阅HttpInterceptor的文档。
像这样。
export class YourInterceptor implements HttpInterceptor {
constructor() {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).do((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
// do stuff with response if you want
}
}, (err: any) => {
if (err instanceof HttpErrorResponse) {
if (err.status === 401) {
// redirect to the login route
// or show a modal
}
}
});
}
}
希望这有帮助。