我有一个带有认证的laravel 5.2应用程序。我构建了一个自定义的全局中间件,该中间件会更新每个用户的“last_seen”列。
注意:这是一个在请求之后运行的中间件。
我使用“UTC”时区,以便在世界任何地方计算差异时都不会出现错误。
一切正常,符合预期,直到我退出登录。当我退出登录时,“last_seen”列会更新为我的当前时区“罗马尼亚”的时间。我不知道为什么会这样,因为我从未声明过除“UTC”之外的时区。
以下是我的中间件代码:
注意:这是一个在请求之后运行的中间件。
我使用“UTC”时区,以便在世界任何地方计算差异时都不会出现错误。
一切正常,符合预期,直到我退出登录。当我退出登录时,“last_seen”列会更新为我的当前时区“罗马尼亚”的时间。我不知道为什么会这样,因为我从未声明过除“UTC”之外的时区。
以下是我的中间件代码:
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use Carbon\Carbon;
class LastSeenMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
if(Auth::check()){
Auth::user()->last_seen = Carbon::now();
Auth::user()->save();
}
return $response;
}
}