Laravel 在默認的情況之下,所有的路由(Route)它會自動啟用 CSRF 保護,這在開發的過程當中,是一個非常方便的功能。

但有時候,如果您在使用其他第三方服務時,你不需要設置 Token 的保護,那麼就產生了一個問題,如果第三方網站在訪問網站時,會發現網站告訴你該頁面已過期的訊息。

The page has expired due to inactivity.
Please refresh and try again.

然而在 Laravel 5.1 開始,app/Http/Middleware/VerifyCsrfToken 提供了一個 $except 變數屬性,這個可以讓您自定義哪些路由可以忽略 CSRF 的保護,舉例來說:

VerifyCsrfToken.php

1
2
3
4
5
6
7
8
9
10
...
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'example/*',
];
...

這樣子 Laravel 就會自動將你 http://example.com/example/* 的所有路由都忽略 CSRF 的保護了。