相关疑难解决方法(0)

任何桌面浏览器都能检测到计算机何时从睡眠状态恢复?

如果计算机的"唤醒"事件传播到浏览器并在JavaScript API中可用,那就太好了.有谁知道这样的事情是否实施了?

javascript sleep

57
推荐指数
3
解决办法
2万
查看次数

如何在Laravel 5.x中注销过期的会话?

更新版本的Laravel(正确)使用POST注销会话.这样做的原因是GET/HEAD只应用于被动操作以符合HTTP.

使用csrf令牌进行POST也可以防止恶意用户/站点将您从会话中注销:https://security.stackexchange.com/questions/62769/must-login-and-logout-action-have-csrf-protection

但是,如果会话已超时,并且用户单击注销(触发POST到注销路由),则会收到令牌不匹配错误.这是有道理的 - 令牌不匹配,因为会话已过期.

我可以根据请求变量捕获特定的TokenMismatchException,如果是的话,以他们的快乐方式继续它们(到登出的重定向路径,比如说"home"或"/").像这样:

public function render($request, Exception $e)
{
    if ($e instanceof TokenMismatchException && $request->getRequestUri() === '/logout') {
        return redirect('/');
    }

    return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果我这样做,首先是令牌的重点是什么?以及如何在会话过期时注销用户,同时保持使用带有CSRF令牌的POST注销的预期结果?

php security session laravel laravel-5.3

7
推荐指数
1
解决办法
3055
查看次数

检查令牌在Laravel中是否过期

我有一个列的表标记:user_idtokenexpires_at

例:

我有令牌:12345,对我来说,他过期于:2018-06-05

生成新令牌时,最多生成7天。

我该如何检查模型?

我试着做模型的范围:

public function scopeExpired($query) {
    return $this->where('expires_at', '<=', Carbon::now())->exists();
}
Run Code Online (Sandbox Code Playgroud)

但是没有用。总是假..

php laravel

2
推荐指数
1
解决办法
4560
查看次数

标签 统计

laravel ×2

php ×2

javascript ×1

laravel-5.3 ×1

security ×1

session ×1

sleep ×1