tutorial register framework expiration example auth django angular authentication django-rest-framework

register - django rest token expiration



No se puede iniciar sesiĆ³n en el marco de descanso Angular2/Django (1)

Utilicé la autenticación de sesión de Django con Angular2 de esta manera:

loginUser (credentials: any): Observable<Profile> { let headers = new Headers({ ''Content-Type'': ''application/json''}); headers.append("X-CSRFToken", this.utils.getCookie(''csrftoken'')); let options = new RequestOptions({ headers: headers, withCredentials: true }); return this.http.post(this.userUrl + ''auth/'', credentials , options) .map(res => res.json()) .catch(this.handleError); }

En la vista basada en la clase Django:

@method_decorator(csrf_protect) def post(self, request, format=None): user_data = request.data self.logger.info(''Authenticating user {0}''.format(user_data[''username''])) user = authenticate(username=user_data[''username''], password=user_data[''password'']) login(request, user)

Usé el marco de descanso de Django. Pero sugiero que django-jwt auth en lugar de sesión (mucho menos dolor :)).

Estoy usando autenticación de sesión con el siguiente método de servicio Angular 2.

login(username : string, password : string) { var data = { username: username, password: password } return this.http.post(environment.apiEndpoint + ''login'', data) .catch((error) => { return Observable.throw(error.json()); }); }

Resultado: la respuesta contiene csrftoken y sessionid en el valor setcookie del encabezado, pero es ignorado por angular.

Agregar con credenciales causa un error de token no válido de CSRF.

¿Cómo iniciar sesión usando Angular 2 y Django rest framework con esquema de autenticación de sesión? Thnx de antemano!