Skip to main content
AdvancedAuth Plugin Icon - Secure Minecraft Authentication

AdvancedAuth - Minecraft Authentication with API & Email

By 22+ Downloads 4/5 Rating Free Plugin
Minecraft Plugin Authentication Security Dashboard API Email OTP User Management Free

About AdvancedAuth

AdvancedAuth is a comprehensive Minecraft authentication plugin designed to provide enterprise-grade security for your server. Featuring a secure login system with encrypted passwords, a real‑time admin dashboard, and now a powerful REST API with granular permission control. Perfect for server owners looking to enhance security, integrate external services, and improve user experience.

Our plugin now includes email‑based OTP password reset, API key management with 12 distinct permissions (users.read, users.create, users.delete, etc.), detailed IP login history, active session tracking, and an intuitive web interface that allows you to manage users, monitor activity, and configure security settings from anywhere.

Key Features

REST API Documentation

All API endpoints require an API key passed in the x-api-key header. Keys are generated from the admin dashboard and can be assigned granular permissions. The base URL is https://plugins.zenuxs.in.

GET /api/dataapikey/query public_query

Description: Check if a user exists and validate password.

Query Parameters: tag (username), password, apikey, serverKey (optional).

Example Request:
GET /api/dataapikey/query?tag=john&password=123456&apikey=YOUR_API_KEY
Example Response (success):
{
    "valid": true,
    "exists": true,
    "username": "john",
    "email": "john@example.com",
    "isBanned": false,
    "timestamp": "23/01/2025, 14:30:45"
}
POST /api/register users.create

Description: Register a new user.

Headers: Content-Type: application/json, x-api-key: YOUR_API_KEY

Request Body:
{
    "username": "john",
    "password": "123456",
    "email": "john@example.com"
}
Response:
{
    "message": "User registered successfully",
    "username": "john"
}
GET /api/admin/users users.read

Description: Get a paginated list of users.

Headers: x-api-key: YOUR_API_KEY

Query Parameters: page, limit

Example Request:
GET /api/admin/users?page=1&limit=10
Response:
{
    "users": [ ... ],
    "totalUsers": 150,
    "page": 1,
    "totalPages": 15
}
POST /api/admin/deleteUser users.delete

Description: Permanently delete a user.

Request Body:
{ "username": "john" }
Response:
{ "message": "User deleted successfully" }
POST /api/admin/banUser users.ban

Description: Ban a user (prevents login).

Request Body:
{
    "username": "john",
    "banMessage": "Spamming"
}
Response:
{ "message": "User banned successfully" }
POST /api/admin/unbanUser users.unban

Description: Unban a previously banned user.

Request Body:
{ "username": "john" }
Response:
{ "message": "User unbanned successfully" }
POST /api/admin/changePassword users.change_password

Description: Change a user's password (admin action).

Request Body:
{
    "username": "john",
    "newPassword": "newpass123"
}
Response:
{ "message": "Password changed successfully" }
POST /api/admin/users/:username/resetPassword users.reset_password

Description: Reset a user's password and optionally send email.

Request Body:
{
    "newPassword": "newpass123",
    "sendEmail": true
}
Response:
{
    "success": true,
    "message": "Password reset successfully",
    "username": "john",
    "emailSent": true
}
POST /api/admin/user/:username/forceLogout users.force_logout

Description: Invalidate all active sessions for a user.

Request Body:
{ "username": "john" }
Response:
{
    "success": true,
    "message": "All sessions invalidated",
    "username": "john"
}
GET /api/admin/user/:username/ipStats users.view_ip

Description: Retrieve IP login history for a user.

Example Request:
GET /api/admin/user/john/ipStats
Response:
{
    "username": "john",
    "totalLogins": 25,
    "uniqueIPs": 3,
    "mostFrequentIP": "192.168.1.1",
    "loginCountByIP": { "192.168.1.1": 15, ... },
    "recentIPs": [ ... ]
}
GET /api/admin/users/export users.export

Description: Export all users as JSON or CSV.

Query Parameter: format (json or csv).

Example Request (JSON):
GET /api/admin/users/export?format=json
GET /api/admin/user/:username/sessions users.manage_sessions

Description: List all active sessions for a user.

Example Request:
GET /api/admin/user/john/sessions
Response:
{
    "username": "john",
    "totalActiveSessions": 2,
    "sessions": [ ... ]
}
POST /api/admin/users/bulk users.ban / users.delete

Description: Perform bulk ban/unban/delete operations.

Request Body (ban):
{
    "action": "ban",
    "usernames": ["john", "jane"]
}
Response:
{
    "success": true,
    "message": "Bulk ban completed",
    "affected": 2
}

All API keys are scoped to the server they were created for. Use the x-api-key header for authentication.

Plugin Screenshots

Configuration Example


# ============================================================
#                     ZENUXS PLUGINS
# ============================================================
# Website:   https://plugins.zenuxs.xyz
# Developer: developer.rs (Rishabh)
# Discord:   https://discord.zenuxs.xyz
# ============================================================

# ======================================
#         AuthPlugin Configuration
# ======================================

# -------------------------------
# API Settings
# -------------------------------
timeout: 10000

# -------------------------------
# License Key
# -------------------------------
license-key: ""

# -------------------------------
# Login Settings
# -------------------------------
login:
  max-attempts: 3
  timeout: 300
  session-duration: 86400

# -------------------------------
# IP Limit Settings
# -------------------------------
ip-limit:
  enabled: true
  max-players: 3

# -------------------------------
# Email OTP Settings
# -------------------------------
email:
  enabled: true
  otp-expiry: 600
  reset-url: "https://your-site.com/reset-password"

# -------------------------------
# Auth World Settings
# -------------------------------
auth-world:
  register-world: ""
  register-x: 0.5
  register-y: 64.0
  register-z: 0.5
  register-yaw: 0.0
  register-pitch: 0.0
  login-world: ""
  login-x: 0.5
  login-y: 64.0
  login-z: 0.5
  login-yaw: 0.0
  login-pitch: 0.0

# -------------------------------
# Protection Settings
# -------------------------------
protection:
  prevent-movement: true
  prevent-block-break: true
  prevent-block-place: true
  prevent-interaction: true
  prevent-chat: true
  prevent-damage: true
  prevent-item-drop: true
  prevent-item-pickup: true

# -------------------------------
# Messages
# -------------------------------
messages:
  prefix: "&8[&bAuth&8] &7"
  no-permission: "&cYou don't have permission to use this command."
  not-player: "&cThis command can only be executed by players."
  already-logged-in: "&aYou are already logged in."
  not-logged-in: "&cPlease login first with /login "
  not-registered: "&cPlease register first with /register "
  welcome-back: "&e&lWelcome back %player%! &7Please use &b/login "
  welcome-new: "&e&lWelcome %player%! &7Please use &b/register "
  register-usage: "&cUsage: /register "
  login-usage: "&cUsage: /login "
  register-success: "&aRegistration successful! You can now login with /login."
  login-success: "&aLogin successful! Welcome to the server!"
  logout-success: "&aYou have been logged out."
  reload-success: "&aConfiguration reloaded successfully."
  register-error: "&cRegistration failed: %error%"
  login-error: "&cLogin failed: %error%"
  login-attempts: "&cYou have %attempts% attempts remaining."
  login-timeout: "&cYou have been kicked for too many failed login attempts."
  api-error: "&cCould not connect to authentication server. Please try again later."
  license-error: "&cInvalid license key. Please contact an administrator."
  ip-limit-exceeded: "&cToo many players are already connected from your IP address!"
  custom-join-message: "&a&l+ &a%player% joined the server!"
  custom-leave-message: "&c&l- &c%player% left the server!"

# -------------------------------
# Commands to Execute on Login
# -------------------------------
on-login:
  - "title %player% title {\"text\":\"Welcome!\",\"color\":\"green\"}"
  - "title %player% subtitle {\"text\":\"Enjoy your stay!\",\"color\":\"yellow\"}"
  - "playsound minecraft:entity.player.levelup player %player%"

# -------------------------------
# BungeeCord command block
# -------------------------------
block-bungee-commands: true
                    

Secure Your Server Today

Join thousands of server owners who trust AdvancedAuth for their authentication needs. Download now and get enterprise-grade security for free.

Access Dashboard