在Angular 2中获取X-CSRF-TOKEN

时间:2017-02-07 11:12:21

标签: angular token csrf primeng x-xsrf-token

我在我的app.module中使用在Angular 2中使用X-CSRF-TOKEN的标准方法:

provide: XSRFStrategy, useValue: new CookieXSRFStrategy('CSRF-TOKEN', 'X-CSRF-TOKEN')

我正在使用“primeng”进行文件上传。我需要像我一样自己设置令牌:

private onBeforeSend(event) {
     event.xhr.setRequestHeader("X-CSRF-TOKEN", tokenThatINeed);
}

我需要Angular2为我生成的令牌。我不知道如何访问令牌。

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取令牌

document.cookie

答案 1 :(得分:0)

所以,我有一个类似的问题,并使用第三方JavaScript库来解决问题。有几个不同的,但我使用angular2-cookie。一旦您将服务注入您的组件,它就非常直接。这是我的代码最终看起来像:

import {CookieService} from "angular2-cookie/core";

@Component({
    selector: 'fileUpload',
    templateUrl: 'app/components/files/fileUpload.html',
    providers: [CookieService]

})

export class FileUploadComponent {
    uploadUrl:string;

    constructor(private propertyService:PropertyService,
                private cookieService:CookieService){

        this.uploadUrl = propertyService.getProperties().server_location + "/files/upload"
    }

    onBeforeSend(event:any){
        event.xhr.open("POST", this.uploadUrl, true);
        event.xhr.setRequestHeader("X-XSRF-TOKEN", this.cookieService.get("XSRF-TOKEN"));
    }
}

答案 2 :(得分:0)

像这样使用 HttpXsrfTokenExtractor

export class MyComponent {

    constructor(csrfTokenExtractor: HttpXsrfTokenExtractor) {
        console.log(csrfTokenExtractor.getToken());
    }
}