2015-11-02 135 views
1

我有一個基本問題。Laravel令牌確認

Laravel令牌用於密碼重置。

在我的情況下,我想用它來發送用戶發送的更改請求(通過自定義更改表單),這將被管理員接受/拒絕。這樣可以使用令牌嗎?

查看:

<form action="{{ action('[email protected]') }}" method="POST"> 
    <input type="hidden" name="token" value="{{ $token }}"> 
    <input type="radio" name="accept" value="accept"> 
    <input type="label">Accept</label> 
    <input type="radio" name="refuse" value="refuse"> 
    <input type="label">Refuse</label> 
    <input type="submit" value="Reset Password"> 
</form> 

然後張貼到值控制器myController的的changeResult方法。

在此先感謝。

+0

我對你的問題有些困惑。因爲從我看到的情況來看,您正在使用對每個用戶和表單請求都是唯一的CSRF令牌。只要你的路線有'CheckCsrfToken'或其他東西,它總是會通過。那麼你想要達到什麼目標? – ash

+0

@Ash讓我們說我們有一個Web表單項目。用戶填寫表格,然後提交。然後管理員會收到一封電子郵件,以批准用戶填寫的表單上的更改。我想以一種安全的方式開發這個功能,所以要問是否適合使用令牌或類似的東西。 –

回答

2

CSRF令牌用於驗證當前表單提交。一旦用戶點擊了「重置密碼」按鈕,該令牌將被驗證,表單將被接受/拒絕。如果您想重新打開管理員提交的表單,那麼重新打開的表單將使用該表單提交的新標記,因此使用舊標記驗證發送給管理員的請求是沒有用的。

相反,您可以生成一些特定於每個用戶請求的隨機密鑰,並可以將其存儲到數據庫或文件中。稍後可以使用該密鑰來驗證請求。

+0

這就是我想要的答案。所以令牌不能用於用戶請求。我必須爲每個用戶請求生成隨機密鑰。謝謝。 –