Skip to main content
POST
/
user
/
device_quit
curl -X POST "http://localhost:5001/user/device_quit" \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "user123",
    "device_flag": 1
  }'
{
  "status": "ok"
}

Overview

Force a specified user’s device to quit/disconnect, used for administrators to kick out users or handle abnormal connections.

Request Body

Required Parameters

uid
string
required
User ID

Optional Parameters

device_flag
integer
Device identifier, used to specify a particular device type
  • 0 - App (Android, iPhone, iPad devices)
  • 1 - Web (Browser, Web applications)
  • 2 - Desktop (Desktop applications)
If not specified, all devices for the user will be disconnected.
curl -X POST "http://localhost:5001/user/device_quit" \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "user123",
    "device_flag": 1
  }'
{
  "status": "ok"
}

Response Fields

status
string
required
Operation status, returns "ok" on success

Status Codes

Status CodeDescription
200Device quit successfully
400Request parameter error
404User does not exist or device not connected
500Internal server error

Use Cases

Administrative Control

Kick Violating Users:
// Kick user from all devices
await forceDeviceQuit("violating_user");

// Kick user from specific device type
await forceDeviceQuit("violating_user", 1); // Web only
Session Management:
// Force logout from web sessions for security
await forceDeviceQuit("user123", 1);

Security Management

Suspicious Activity:
// Disconnect suspicious connections
const suspiciousUsers = ["user1", "user2"];
for (const uid of suspiciousUsers) {
    await forceDeviceQuit(uid);
}
Account Compromise:
// Emergency disconnect all devices
await forceDeviceQuit("compromised_user");

Multi-Device Management

Device Limit Enforcement:
// Enforce single device policy
async function enforceSingleDevice(uid, allowedDeviceFlag) {
    // Get current online devices
    const status = await getUserOnlineStatus([uid]);
    
    if (status[0]?.online && status[0].device_flag !== allowedDeviceFlag) {
        // Disconnect other devices
        await forceDeviceQuit(uid, status[0].device_flag);
    }
}
Platform Migration:
// Force users to migrate to new platform
async function migrateFromOldPlatform(userIds) {
    for (const uid of userIds) {
        // Disconnect old platform (device_flag: 0)
        await forceDeviceQuit(uid, 0);
    }
}

Best Practices

  1. Logging: Always log device quit operations for audit purposes
  2. Notification: Notify users when their devices are forcibly disconnected
  3. Reason Codes: Include reason codes for different disconnect scenarios
  4. Rate Limiting: Implement rate limiting to prevent abuse
  5. Permission Check: Verify administrator permissions before allowing device quit
  6. Graceful Handling: Allow users to reconnect after resolving issues

Security Considerations

  • Admin Only: This API should only be accessible to system administrators
  • Audit Trail: Maintain detailed logs of all forced disconnections
  • User Notification: Consider notifying users about forced disconnections
  • Reason Documentation: Document reasons for forced disconnections
  • Appeal Process: Provide a process for users to appeal disconnections