用户从firebug中删除隐藏令牌时如何处理令牌不匹配异常?

时间:2017-09-11 07:25:19

标签: php laravel laravel-5.2

我正在开发laravel 5.2框架,我正在维护和保护我们的代码。现在我面临一个问题。假设有一个这样的登录表单: -

<form id="userLoginForm" method="post" action="{{ url('/login') }}">{{csrf_field()}}
 <label>Email: </label>
 <input type="text" name="email" autocomplete="off" placeholder="Email" class="input-style" />
<label>Password: </label>
<input type="password" name="password" autocomplete="off" placeholder="Password" class="input-style" />
<input type="submit" class="green-btn-style" value="LOGIN" />

现在我的表格看起来像萤火虫: - enter image description here

现在假设我按下键盘上的删除按钮,现在令牌已从我们的表单中删除。现在我提交表格时。它会告诉我Token不匹配的预期。但我不想向黑客或用户显示该错误。 我已经实现了isset但是没有工作。 我的登录代码: -

if(isset($data['email']) && isset($data['password']) && isset($data['_token']) && Auth::attempt(['email' => $data['email'],'password' => $data['password']])) {
 //redirect to dashboard
}

任何人都可以帮我解决此问题。

enter image description here

1 个答案:

答案 0 :(得分:0)

例外由文件处理

app/Exceptions/Handler.php
<\ n>在Laravel。您可以捕获Token Mismatch异常并执行所需的操作。示例代码为

use Illuminate\Session\TokenMismatchException;

要仅捕获Token Mismatch异常,您可以将其添加到渲染方法

if ($exception instanceof TokenMismatchException) {

           return response()->view('errors.400', [], 400); // load any view of your choice
        }