【发布时间】:2018-11-05 02:36:20
【问题描述】:
我正在使用 Angular 6,并且很难将 Django 的 csrf 与 Angular 的集成。 我发现in this thread Django 在登录时更改了令牌,因为我可以使用具有相同新会话的发布请求进行注册和登录,但登录后不发布任何内容似乎是有道理的。
问题变成了我如何在登录时重置 csrf 令牌。现在在我的 Angular 应用程序中处理 csrf 的方式显示在我的应用程序模块的以下代码中:
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { HttpModule, XSRFStrategy, CookieXSRFStrategy } from '@angular/http'
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { RegisterComponent } from './register/register.component';
import { LoginComponent } from './login/login.component';
import { AlertComponent } from './_directives/alert.component';
import { ProfileComponent } from './profile/profile.component';
import { AuthGuardService } from './_guards/auth-guard.service';
import { AlertService } from './_services/alert.service';
import { AuthService } from './_services/auth.service';
import { UserService } from './_services/User.service';
@NgModule({
declarations: [
AppComponent,
RegisterComponent,
LoginComponent,
AlertComponent,
ProfileComponent,
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
AppRoutingModule,
HttpClientModule,
HttpModule
],
providers: [
{
provide: XSRFStrategy,
useValue: new CookieXSRFStrategy('csrftoken', 'X-CSRFToken')
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
所以我的问题是,如何让我的应用在登录时重置值? (不一定专门登录,但我如何重置该值。)
【问题讨论】: