zoukankan      html  css  js  c++  java
  • angular5.x拦截器 给get post请求添加参数user_token

    export class Interceptor implements HttpInterceptor {
    public myAppListService;
    constructor(private message: NzMessageService, private injector: Injector) {
    }

    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    this.myAppListService = this.injector.get(MyAppListService);
    this.myAppListService.selectedUserToken = getQueryString('user_token') || sessionStorage.getItem('user_token');
     
    if (this.myAppListService.selectedUserToken !== 'null') {
    let newParams;
    let newBody;
    if (req.method === 'GET') {
    let userToken = this.myAppListService.selectedUserToken;
    if (userToken) {
    newParams = req.params.set('user_token', userToken);
    const comReq = req.clone({
    params: newParams,
    body: newBody
    });
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    } else if (req.method === 'POST' && req.headers.get('content-type').indexOf('application/x-www-form-urlencoded;') > -1) {
    // if (req.body.indexOf('user_token=')) {
    let userToken = this.myAppListService.selectedUserToken;
    if (userToken) {
    if (req.body.match(/(^|&)user_token=([^&]*)(&|$)/)) {
    newBody = req.body.replace(req.body.match(/(^|&)user_token=([^&]*)(&|$)/)[0], '');
    newBody = newBody + '&user_token=' + userToken;
    } else {
    newBody = '&user_token=' + userToken;
    }
    const comReq = req.clone({
    params: newParams,
    body: newBody
    });
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    // }
    }

    }
    const comReq = req.clone();
    return next.handle(comReq).do((res) => {
    this.handleResponse(res);
    });
    }
    public handleResponse(res) {
    if (res instanceof HttpResponse) {
    const data = res.body;
    if (data.status && data.status === 2) {
    this.message.error(data.data);
    location.href = '/index.php?r=Login/Ulogin';
    }
    if (data.status && data.status === 1 && data.data === '应用不存在,或者您不是应用管理者') {
    location.href = '/index.php?r=Login/Ulogin';
    return;
    }
    }
    }
    }
  • 相关阅读:
    java 静态方法分析
    编译时常量与运行时常量
    springboot+elasticsearch配置实现
    spring+mybatise注解实现
    @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
    @RequestBody 的正确使用办法
    springboot+jps+druid项目搭建
    python 源码安装
    liunx 时间ntp同步服务器
    spring 定时任务corn表达式
  • 原文地址:https://www.cnblogs.com/aisiqi-love/p/10151284.html
Copyright © 2011-2022 走看看