Настройка AuthProvider

Способ accept

Принимает любые пары логин-пароль

"auth": [
  {
    "provider": {
      "type": "accept"
    }
  }
]

Способ reject

Отклоняет любые пары логин-пароль

"auth": [
  {
    "provider": {
      "type": "reject",
      "message": "Ведутся технические работы, приходите позже" // cообщение при авторизации
    }
  }
]

Способ mysql

Для проверки логина и пароля лаунчсервер обращается к базе данных mysql
Этот способ НЕ подходит для сайтов с нестандартными алгоритмами хеширования

"auth": [
  {
    "provider": {
      "type": "mysql",
      "mySQLHolder": {
        "address": "localhost",              // адрес mysql сервера
        "port": 3306,                        // порт mysql сервера
        "username": "launchserver",          // имя пользователя
        "password": "password",              // пароль пользователя
        "database": "db?serverTimezone=UTC", // база данных (до ?), после находится установка серверной таймзоны
        "timezone": "UTC"                    // установка клиентской таймзоны
      },
      "query": "SELECT login FROM users WHERE login=? AND password=MD5(?) LIMIT 1", // sql запрос, ? по порядку заменяются параметрами из queryParams (перевод: "ВЫБРАТЬ логин ИЗ ТАБЛИЦЫ users ГДЕ ЛОГИН=? И пароль=MD5(?) МАКСИМУМ 1")
      "queryParams": [ "%login%", "%password%" ], // параметры sql запроса
      "message": "Пароль неверный!"               // сообщение при неверном пароле
    }
  }
]

Настройка permnissions этим спосбом

"auth": [
  {
    "provider": {
      "type": "mysql",
      "mySQLHolder": {
        "address": "localhost",
        "port": 3306,
        "username": "launchserver",
        "password": "password",
        "database": "db?serverTimezone=UTC",
        "timezone": "UTC"
      },
      "query": "SELECT login, permission FROM users WHERE login=? AND password=MD5(?) LIMIT 1",
      "queryParams": [ "%login%", "%password%" ],
      "usePermission": true,
      "message": "Пароль неверный!"
    }
  }
]

Способ request

Для проверки логина и пароля лаунчсервер обращается к сайту по протоколу HTTP/HTTPS

"auth": [
  {
    "provider": {
      "type": "request",
      "url": "http://gravit.pro/auth.php?username=%login%&password=%password%&ip=%ip%", // ссылка до скрипта проверки логина-пароля
      "response": "OK:(?<username>.+)" // маска ответа, если не соответствует, будет выведено сообщение с возвращенным текстом
    }
  }
]

Настройка permissions этим способом

"auth": [
  {
    "provider": {
      "type": "request",
      "usePermission": true,
      "url": "http://gravit.pro/auth.php?username=%login%&password=%password%&ip=%ip%",
      "response": "OK:(?<username>.+):(?<permissions>.+)"
    }
  }
]

Способ json

Для проверки логина и пароля лаунчсервер обращается к сайту по протоколу HTTP/HTTPS, но в отличии от request делает POST запрос с json данными внутри

"auth": [
  {
    "provider": {
      "type": "json",
      "url": "http://gravit.pro/auth.php", // ссылка до скрипта проверки логина-пароля
      "apiKey": "none"                     // секретный ключ, который может проверятся в скрипте, для безопасности
    }
  }
]

При этом способе настройка permissions не выполняется, так как по умолчанию сервер обязан передавать permissions
Запрос:

{
  "username": "admin",
  "password": "password",
  "ip": "127.0.0.1",
  "apiKey": "none"
}

Ответ:

{
  "username": "admin",
  "permissions": 0
}

Ошибка:

{
  "error": "Неверный логин или пароль"
}

Способ hibernate

Hibernate — самая популярная реализация спецификации JPA, предназначенная для решения задач объектно-реляционного отображения (ORM)
Для проверки логина и пароля лаунчсервер обращается к любой базе данных
Для подключения к базам данных, в libraries необходимо положить библиотеку для поддержки соответствующей базы данных
Инструкция по настройке Hibernate

"auth": [
  {
    "provider": {
      "type": "hibernate"
    }
  }
]