# 1. Trường CSRF (CSRF field) (ok)

### 1. Trường CSRF (CSRF field) <a href="#id-1-truong-csrf-csrf-field-23" id="id-1-truong-csrf-csrf-field-23"></a>

Bạn còn nhớ vấn đề ở tập Routing chứ, chúng ta không thể truy cập route với phương thức `POST`, cũng như là `PUT`, `DELETE`... vì thiếu CSRF field này. Vì vậy khi khởi tạo một HTML form thì chúng ta phải khái báo CSRF field thông qua thẻ `@csrf`.

Giờ mình sẽ tạo blade view `home` với nội dung sau:

```
<form method="POST" action="/post">
    @csrf
    
    <input type="submit" value="Send post">
</form>
```

Form này sẽ gửi một request với method `POST` với URI `/post` khi submit.

Sau đó các bạn đăng ký hai route này trong `routes/web.php`:

```
Route::get('/', function () {
    return view('home');
});

Route::post('/post', function() {
    return 'Posted';
});
```

Với route đầu tiên thì sẽ render view chứa form của chúng ta. Còn route thứ hai mang phương thức `POST` sẽ được gọi khi chúng ta click vào nút "Send post".

Bây giờ ta hãy thử truy cập đường dẫn [http://localhost:8000](http://localhost:8000/) và F12 lên để xem source HTML của form vừa tạo.

![](https://images.viblo.asia/78cff78a-a3a3-45d2-8b9b-2c3c5eb6c08a.JPG)

`@csrf` đã tạo một input hidden với name là `_token` và value chứa CSRF token, có field này chắc chắn ta sẽ gửi được request với method `POST`. Việc cuối cùng là click vào nút "Send post" thôi.

![](https://images.viblo.asia/27dbb2eb-15ba-4711-985b-39df9a596b50.JPG)
