Php 缓存API用户凭据

Php 缓存API用户凭据,php,laravel,Php,Laravel,我在每个HTTP请求上都运行以下代码: if ($request->header('Authorization')) { $token = $request->header('Authorization'); $user = User::where('api_token', $token)->whereRaw("`api_token_expires` >= CURDATE()")->active()->first(); if ($use

我在每个HTTP请求上都运行以下代码:

if ($request->header('Authorization')) {
    $token = $request->header('Authorization');
    $user = User::where('api_token', $token)->whereRaw("`api_token_expires` >= CURDATE()")->active()->first();
    if ($user) {
        $GLOBALS['user_id'] = $user->id;
        $GLOBALS['is_admin'] = $user->admin;
        return $next($request);
    }
}
如您所见,我正在为每个请求访问数据库,以查找有效的API令牌

什么是更有效但安全的最佳做法?我应该看看MySQL缓存吗?Redis还是别的什么


编辑:我没有使用会话,这是一个无状态API。

您可以让API用户先进行授权,然后使用会话令牌进行响应

然后,他们可以在下一个请求中使用该会话令牌

您可以将这些会话存储在$\u SESSION变量、文件中的磁盘或像Redis这样的快速数据库中


为了安全地执行此操作,我会自动删除旧会话,根据会话令牌的原始IP检查会话令牌,并强制api使用https。

我根本不使用会话-这实际上是Lumen,它是一个无状态api。啊,那么您可能想看看这个:最好的方法是使用redis进行更快的访问。休息吧,一切都好。这取决于你将收到的点击量,如果交通是少mysql是好的