2015-11-02 132 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

这就是我想要的答案。所以令牌不能用于用户请求。我必须为每个用户请求生成随机密钥。谢谢。 –