運行Laravel 5.3我的應用程序在網站上爲客人啓用了某些API路由。 我不希望這些內容完全公開,並且可以直接訪問,所以我認爲我需要將「VerifyCsrfToken」中間件添加到這些路由中。Laravel爲特定路由啓用VerifyCsrfToken
我相信至少會證實請求來自我的應用程序。
對此有何指導?由於
UPDATE: 添加CSRF中間件的路線由@motie的建議,然後還加入了「StartSession」中間件的路線似乎工作後 - 但它並沒有按照我所希望的實際工作 - 希望它能夠比較令牌和失敗 - 如果不匹配 - 但事實並非如此。
的VerifyCsrfToken在其檢查以下內容:
if (
$this->isReading($request) ||
$this->runningUnitTests() ||
$this->shouldPassThrough($request) ||
$this->tokensMatch($request)
)
它需要的那些條件中的任何一個,以通過 - 這是一個有點奇特的「isReading」簡單地檢查,如果請求使用「GET」方法所以目前它總是通過......
- 還調用
StartSession
中間件似乎刷新,這意味着網絡令牌和API調用令牌是不一樣的API路線CSRF令牌。我認爲將此路由添加到「Web」路由或向其添加「web」中間件可能會更容易...
如果要啓用CSRF檢查API的路線,那麼你可以簡單地添加的路線* web.php *而不是* api.php * ... –