zoukankan      html  css  js  c++  java
  • 如何添加JWT生成的token在请求头中

    前言

    在我们使用JWT来做用户的验证时,我们登陆生成对应的token,并加入到请求的参数中发送到后台提供相关的权限校验。这个时候我们需要使用到传递请求头参数传递的问题,下面是两种方式。

    1.ajax提交方式

    1).方法一:

    $.ajax({
    type: "GET",
    url: "/access/logout/" + userCode,
    headers: {'Authorization': token}
    });
    上面的方法一是我提交的方式

    请求成功后


    2).方法二:

    $.ajax({
    type: "GET",
    url: "/access/logout/" + userCode,
    beforeSend: function(request) {
    request.setRequestHeader("Authorization", token);
    },
    success: function(result) {
    }
    });
    2.anjular添加token到header中的方式

    1.自定义Http方法,全局使用自动添加Token到Header中,或者使用拦截器,方法类似。

    import {Observable} from 'rxjs/Observable';
    import {Injectable} from '@angular/core';
    import {
    Http,
    RequestOptionsArgs,
    RequestOptions,
    Response,
    Headers
    } from '@angular/http';

    const mergeToken = (options: RequestOptionsArgs = {}) => {
    const newOptions = new RequestOptions({}).merge(options);
    const newHeaders = new Headers(newOptions.headers);
    const jwt = localStorage.getItem('jwt');
    if (jwt) {
    newHeaders.set('Authorization', jwt);
    }
    newOptions.headers = newHeaders;
    return newOptions;
    };

    @Injectable()
    export class MyHttp {

    constructor(private http: Http) {
    }

    get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.get(url, mergeToken(options));
    }

    post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.post(url, body, mergeToken(options));
    }

    put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.put(url, body, mergeToken(options));
    }

    delete(url: string, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.delete(url, mergeToken(options));
    }

    patch(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.patch(url, body, mergeToken(options));
    }

    head(url: string, options?: RequestOptionsArgs): Observable<Response> {
    return this.http.head(url, mergeToken(options));
    }

    }

  • 相关阅读:
    解决 “invalid resource directory name”, resource “crunch”
    Unable to resolve target 'android-19'
    android SDK安装容易出错的原因
    Eclipse启动认定SDK地址,出现Error executing aapt
    解决Android SDK Manager更新下载速度慢
    Vue框架
    JSON
    Django之组件--cookie与session
    Django之组件--中间件
    Django之组件--forms
  • 原文地址:https://www.cnblogs.com/jfaith/p/11124030.html
Copyright © 2011-2022 走看看