我對每個HTTP請求運行此代碼:緩存API的用戶憑據
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。
最好的方法是使用redis來加快訪問速度。休息一切都很好。這取決於你會收到的命中,如果流量較少mysql是好的 – Bugfixer