method(true) === 'OPTIONS') { return response()->send(); } $header = $request->header(); if(!isset($header['language'])){ $request->lang=Config::get('lang.default_lang'); }else{ $lang_list=Config::get('lang.allow_lang_list'); $lang=strtolower($header['language']); if(in_array($lang,$lang_list)){ $request->lang=$lang; }else{ $request->lang=Config::get('lang.default_lang'); } } if(empty($header['token'])){ return json(['code' => '100403', 'message' => 'login please','data' => []]); } if(!is_string($header['token'])){ return json(['code' => '100403', 'message' => 'login please','data' => []]); } $tokenUserKey = 'TOKEN:USER:'.$header['token']; $userId = Cache::store('redis')->get($tokenUserKey); if(empty($userId) || $userId <= 0){ return json(['code' => '100403', 'message' => 'login please','data' => []]); } // 查找用户信息 $user = UserModel::getFieldsByUserId('status,user_id', $userId); if(empty($user)){ return json(['code' => '100403', 'message' => 'no user','data' => []]); } if($user['status'] != UserModel::STATUS_ON){ return json(['code' => '100403', 'message' => 'no auth','data' => []]); } $request->userId = $userId; $userTokenKey = 'USER:TOKEN:'.$request->userId; $expire = 30 * 24 * 60 * 60; Cache::store('redis')->set($userTokenKey, $header['token'], $expire); Cache::store('redis')->set($tokenUserKey, $request->userId, $expire); return $next($request); } }