2016-11-28 4 views
0

Я использую угловой ui как отдельный пакет, а для бэкэнда я использую laravel backend.Now, если я обойду токен csrf в laravel, я могу обрабатывать запрос на отправку из отдельного углового пакета, но для обеспечения безопасности я буду использовать csrf в post request.I не использую middleware.Can, кто-нибудь поможет мне в этом отношении?Как создать токен csrf в угловой ui

ответ

-1

Вы можете создать API в Laravel, которые возвращают CSRF токен, такие как:

Route::get('api/token', function() { 
    return Session::token(); 
}); 

Конечно, вы должны добавить проверку на контроллере или промежуточного слоя и т.д. Например, в контроллере:

public function list() { 
    if (Session::token() != $request->header('X-Csrf-Token')) 
     return Response::json('CSRF does not match', 400); 
    // Other code 
} 

в вашем angularjs коде, вы можете получить маркер и зарегистрировать его в качестве постоянной и может быть введен во всех angularjs HTTPRequest к API:

var xhRequest = new XMLHttpRequest(); 
xhRequest.open("GET", "api.yourdomain.com/api/token", false); 
xhRequest.send(null); 

app.constant("CSRF_TOKEN", xhRequest.responseText); 

app.run(['$http', 'CSRF_TOKEN', function($http, CSRF_TOKEN) {  
    $http.defaults.headers.common['X-Csrf-Token'] = CSRF_TOKEN; 
}]); 
+0

Но токен csrf изменяется в каждом сообщении. Даже если он остается постоянным в угловом пакете, он будет отличаться в пакете laravel. Мое угловое расположение в другом пакете, а laravel - в другом пакете. Оба они независимы. –

+0

Вот почему в каждом HttpRequest приведенный выше код вводит токен CSRF, взятый из API. Текущий токен останется неизменным для текущего запроса. Я понимаю, что ваши угловые и laravel - разные пакеты, поэтому я предложил этот ответ. – AWJ

0

Основываясь на моих знаниях: Tern off larkvel по умолчанию использует токены, комментируя линию промежуточного программного обеспечения (как вы уже это сделали).

Не бойтесь этого, потому что вы можете использовать jwt-auth для передачи токена вместе с запросом на защиту вашего запроса/API с помощью промежуточного программного обеспечения, которое поставляется с jwt-auth. Вы можете получить более подробную информацию от here.

Смежные вопросы