Django DRF - 如何使用令牌认证进行CSRF验证

时间:2017-01-20 10:05:03

标签: python angularjs django rest django-rest-framework

我正在使用Django和Django Rest Framework处理REST API。 在前端我有AngularJs应用程序。 我已经为API使用了Token身份验证。这会禁用CSRF检查。

我希望使用REST API保持CSRF验证。怎么做到这一点?

我应该如何获取CSRF令牌值,以便可以使用我的角度应用程序的拦截器将其设置到每个POST请求的标头中。

2 个答案:

答案 0 :(得分:0)

我在 app.js 中有此配置。应该做的伎俩!

app.config(function($httpProvider) {
   $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
   $httpProvider.defaults.xsrfCookieName = 'csrftoken';
   $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
});

答案 1 :(得分:0)

当我开始使用Angular 1.x与Django和DRF时,我遇到了同样的问题,然后我在一本书中找到了这个代码片段,我认为它对我来说很好。在任何javascript导入之前,将此文件包含在export class App implements OnInit { name:string; data:any = {value: 123345}; constructor() {} ngOnInit(): void { this.name = 'Angular2'; } disableSpace(event: any) { if (event.charCode && event.charCode === 32 || event.which && event.which === 32) { event.preventDefault(); } } } 文件或主html文件中,一切都将顺利进行,您可以开始与后端通信。



base.html