1. 程式人生 > >laravel框架下 前後端分離開發時 通過AJax請求單獨獲取加密後的csrf_token

laravel框架下 前後端分離開發時 通過AJax請求單獨獲取加密後的csrf_token

專案中使用的是前後端分離的開發模式,導致有些頁面是沒有後端請求的, 但是在頁面上偶爾也會出現提交表單的情況,後端對post的請求都會校驗CSRF,(只有在路由的middleware中設定了[csrf]時才會在客戶端的cookie中產上一個XSRF-TOKEN),由於前面這個情況 是沒有經過含有 csrf的middleware校驗 所以在客戶端沒有XSRF-TOKEN,但是在這個頁面提交表單的時候又需要驗證csrf,所以必須要單獨獲取這個token,具體做法如下:

$encrypter = app('Illuminate\Encryption\Encrypter');//呼叫csrf中介軟體的加密方法
$encrypted_token = $encrypter->encrypt(csrf_token()); //對csrf token 加密

後面就可以直接返回給客戶端  或者設定到客戶端的cookie中了。