Laravel 5.2 CSRF令牌过期时间过长

时间:2017-03-30 02:58:07

标签: laravel-5 token csrf

我正在使用Laravel 5.2应用程序,我的所有观点都面临着这个问题。

CSRF令牌过快过期。事实上,我只是占用了填写表格的时间,一旦我提交,我就会TokenMismatchException例外。

我试图在Google上搜索问题,找到了一些类似问题的git,甚至试图在Laracast上遇到类似问题而没有任何成功。

我的.env文件有这样的行:

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

这是我的登录方法:

public function postLogin(CookieJar $cookieJar, Request $request)
    {

        $this->validate($request, [
           'email1' => 'required|email',
            'password' => 'required|string'
        ]);
        if($user = User::whereEmail($request->email1)->first() ) {
            if(Hash::check($request['password'], $user->getAttributes()['password'])) {

                if(!$user->getAttributes()['is_active']) {
                    return redirect('/login')->withErrors('Your Account is not Activated Yet!');
                } else if($user->getAttributes()['is_deleted']) {
                    return redirect('/login')->withErrors('Your Account is Banned!');
                } else {
                    # Success
                    $cookie = Cookie::make('user_id', $user->getAttributes()['id'], 864000);
                    return redirect('/')->with('message', 'You have Successfully Logged In!')->withCookie($cookie);
                }
            } else {
                return redirect('/login')->withErrors('Your Login Information is Wrong!');
            }
        } else {
            return redirect('/login')->withErrors('Your Login Information is Wrong!');
        }
    }

请帮帮我。

添加.env文件内容和postLogin方法。

1 个答案:

答案 0 :(得分:0)

您的环境中未保存会话可能会出现问题。也许做php artisan缓存:清除或手动清理和重置存储/框架/会话/中的priveleges如果会话保存到文件。

我假设您已经使用csrf_token()或提供它的东西正确地将令牌添加到您的表单中。