无法在laravel5.2中删除会话值

时间:2016-08-31 07:56:36

标签: php laravel laravel-5 laravel-5.2

我使用这些代码来停止多个表单提交。但它不起作用。我发现 $ form_token $ token 始终相同。我写了会话([' form_token' => null])。但它没有用。为什么?

// make token
function form_token()
{
    session(['form_token' => Str::random(40)]);
    return session('form_token');
}

//check token
function check_token($form_token, $token)
{
    if ($form_token == $token) {
        session(['form_token' => null]);
    } else {
        throw new RuntimeException('Do not submit multiple times');
    }
}

// middleware
public function handle($request, Closure $next)
{
    if (!in_array($request->method(), ['HEAD', 'GET', 'OPTIONS'])) {
        $form_token = $request->input('form_token');
        $token      = session('form_token');
        check_token($form_token, $token);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试forget()方法:

session()->forget('form_token');