From 13f045569e0605d0f916398092d04f751cf07a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=B8=85?= <6581896+oncream@user.noreply.gitee.com> Date: Mon, 7 Apr 2025 12:05:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(1.0.2):=E4=BF=AE=E5=A4=8D=E4=B8=93?= =?UTF-8?q?=E6=A0=8F=E9=97=AE=E9=A2=98;=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=E7=AB=AF=E7=99=BB=E5=BD=95=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/interceptors/check.interceptor.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ui/src/app/core/interceptors/check.interceptor.ts diff --git a/ui/src/app/core/interceptors/check.interceptor.ts b/ui/src/app/core/interceptors/check.interceptor.ts new file mode 100644 index 0000000..802f5a4 --- /dev/null +++ b/ui/src/app/core/interceptors/check.interceptor.ts @@ -0,0 +1,41 @@ +import {inject, Injectable, Injector} from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpEvent, + HttpInterceptor, + HttpResponse +} from '@angular/common/http'; +import { Observable, tap } from 'rxjs'; +import { AuthConfigConsts, tokenNotExpired } from "../../mine/auth.jwt"; + +@Injectable() +export class CheckInterceptor implements HttpInterceptor { + constructor() {} + //从请求头获取token + intercept(req: HttpRequest, next: HttpHandler): Observable> { + const token = localStorage.getItem('token'); + let authHeader = req.headers; + const authReq = req.clone({headers: authHeader}); + return next.handle(authReq).pipe( + tap((event) => { + // 如果是 HTTP 响应 + if (event instanceof HttpResponse) { + // 从响应头中获取 Authorization token + const authToken = event.headers.get('Authorization'); + if (authToken && (!token || token !== authToken.replace(AuthConfigConsts.HEADER_PREFIX_BEARER, ''))) { + // 去掉 Bearer 前缀 + const newToken = authToken.replace(AuthConfigConsts.HEADER_PREFIX_BEARER, ''); + if(token != newToken) { + localStorage.removeItem("token") + localStorage.removeItem("giftCount") + } + } + } + }) + ); + + } + + +}