false, 'message' => '用户名和密码不能为空']); return; } $user = User::findByUsername($username); if (!$user || !User::verifyPassword($username, $password)) { http_response_code(401); echo json_encode(['success' => false, 'message' => '用户名或密码错误']); return; } $jwtSecret = AppConfig::get('jwtSecret'); $jwtExpiry = AppConfig::get('jwtExpiry', 86400); $payload = [ 'userId' => $user['id'], 'username' => $user['username'], 'role' => $user['role'], 'iat' => time(), 'exp' => time() + $jwtExpiry ]; $token = JWT::encode($payload, $jwtSecret, 'HS256'); echo json_encode([ 'success' => true, 'data' => [ 'token' => $token, 'user' => [ 'id' => $user['id'], 'username' => $user['username'], 'role' => $user['role'] ] ] ]); } public static function me(): void { $user = $GLOBALS['auth_user']; echo json_encode([ 'success' => true, 'data' => [ 'id' => $user['userId'], 'username' => $user['username'], 'role' => $user['role'] ] ]); } }