where('username', $request->get('username')) ->where('password', md5($request->get('password'))); }) ->orWhere(function ($query) use ($request) { $query->where('email', $request->get('username')) ->where('password', md5($request->get('password'))); }); //Log::info($query->toSql()); $user = $query->first(); if ($user) { $ExpTime = time() + 60 * 60 * 24 * 365; $key = config('app.key'); $payload = [ 'nbf' => time(), 'exp' => $ExpTime, 'uid' => $user->userid, 'id' => $user->id, ]; $jwt = JWT::encode($payload, $key, 'HS512'); return $this->ok($jwt); } else { return $this->error('invalid token'); } } public static function getUserToken($userUid) { $user = UserApi::getByUuid($userUid); if (!$user) { $user = AiAssistantApi::getByUuid($userUid); } if ($user) { $ExpTime = time() + 60 * 60 * 24 * 365; $key = config('app.key'); $payload = [ 'nbf' => time(), 'exp' => $ExpTime, 'uid' => $user['id'], 'id' => $user['sn'], ]; $jwt = JWT::encode($payload, $key, 'HS512'); return $jwt; } return null; } public function getUserInfoByToken(Request $request) { $curr = AuthApi::current($request); if (!$curr) { return $this->error('invalid token', 401, 401); } $userInfo = UserInfo::where('userid', $curr['user_uid']) ->first(); $user = [ "id" => $curr['user_uid'], "nickName" => $userInfo->nickname, "realName" => $userInfo->username, "avatar" => "", "token" => \substr($request->header('Authorization'), 7), ]; //role为空 返回[] $user['roles'] = []; if (!empty($userInfo->role)) { $roles = json_decode($userInfo->role); if (is_array($roles)) { $user['roles'] = $roles; } } if ($curr['user_uid'] === config('mint.admin.root_uuid')) { $user['roles'] = ['root']; } if ($userInfo->avatar) { $img = str_replace('.jpg', '_s.jpg', $userInfo->avatar); if (App::environment('local')) { $user['avatar'] = Storage::url($img); } else { $user['avatar'] = Storage::temporaryUrl($img, now()->addDays(6)); } } return $this->ok($user); } }