Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.06.2018 14:33:12

Как передать token csrf из api laravel в frontend Angular 5

Всем привет.
Для backend я использую - laravel
Для frontend - angular 5
База данных - mongodb.
Я столкнулся с такой проблемой:
Ни как не могу передать токен csrf в angular.
Нашел статью в которой сказано что token нужно передавать через router
Route::get('/api/csrf', function() {
return response()->json(Session::token());
});

В angular нужно отлавливать этот запрос и отправлять в заголовках обратно вместе с post запросом
constructor(private http: HttpClient) {
this.getToken();//Вызываем метод для получения token
}
getToken() {
return this.http.get(this.tokenUrl).subscribe(res => {
this.token = res; //помещяем полученый token в переиенную token
});
}
public addUser(user: User) {
let headers: HttpHeaders = new HttpHeaders();
headers = headers.append('Content-Type', 'application/json');
headers = headers.append('XSRF-TOKEN', this.token);//Помещяем token в заголовок
return this.http.post<User>(this.apiAddUser, user, {headers: headers}).pipe(
catchError(this.handleError)
);
}

Я думаю что это не правильно.
В итоге возвращяется ошибка с неправельным token.

Как можно это исправить? Спасибо.

Не в сети

#2 09.06.2018 20:00:31

Re: Как передать token csrf из api laravel в frontend Angular 5

Не знаю на сколько поможет, я это правда для ajax использовал.
это в хед страницы

<meta name="csrf-token" content="{{ csrf_token() }}">

а непосредственно для ajax

  $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

Не в сети

Подвал раздела