xpuska513 Опубликовано 22 января, 2017 Поделиться Опубликовано 22 января, 2017 Можно ли как нибудь сделать авторизацию через MySQL? Мне к примеру нужно сделать авторизацию в лаунчере Minecraft через MySQL. Или только можно через REST API? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
DLab Опубликовано 22 января, 2017 Поделиться Опубликовано 22 января, 2017 Можно читать данные из таблицы core_members Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
xpuska513 Опубликовано 22 января, 2017 Автор Поделиться Опубликовано 22 января, 2017 23 минуты назад, DLab сказал: Можно читать данные из таблицы core_members Пробовал, но увы ошибку выдавало. Сам код, который использовал: # Auth provider authProvider: "mysql"; authProviderConfig: { message: "You need to change auth provider in LaunchServer.cfg"; address: "Адресс"; # Адрес MySQL-сервера port: 3306; # Порт MySQL-сервера (по умолчанию 3306) username: "Юзер БД"; # Имя пользователя MySQL-сервера password: "Пароль юзера"; # Пароль пользователя database: "БД"; # База данных query: "SELECT name FROM core_members WHERE (email=? OR name=?) AND member_pass_hash=MD5(MD5(?)) LIMIT 1"; # Запрос. Он должен быть SELECT и возвращать имя пользователя в правильном регистре. ? заменяются на параметры ниже: queryParams: [ "%login%", "%login%", "%password%" ]; # Параметры к запросу. %login% и %password% заменяются на имя пользователя и пароль соответственно }; Хотя я не совсем понял, где именно IPS хранит пароли пользователей и как именно... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
DLab Опубликовано 22 января, 2017 Поделиться Опубликовано 22 января, 2017 8 часов назад, xpuska513 сказал: Пробовал, но увы ошибку выдавало. Сам код, который использовал: # Auth provider authProvider: "mysql"; authProviderConfig: { message: "You need to change auth provider in LaunchServer.cfg"; address: "Адресс"; # Адрес MySQL-сервера port: 3306; # Порт MySQL-сервера (по умолчанию 3306) username: "Юзер БД"; # Имя пользователя MySQL-сервера password: "Пароль юзера"; # Пароль пользователя database: "БД"; # База данных query: "SELECT name FROM core_members WHERE (email=? OR name=?) AND member_pass_hash=MD5(MD5(?)) LIMIT 1"; # Запрос. Он должен быть SELECT и возвращать имя пользователя в правильном регистре. ? заменяются на параметры ниже: queryParams: [ "%login%", "%login%", "%password%" ]; # Параметры к запросу. %login% и %password% заменяются на имя пользователя и пароль соответственно }; Хотя я не совсем понял, где именно IPS хранит пароли пользователей и как именно... В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
xpuska513 Опубликовано 22 января, 2017 Автор Поделиться Опубликовано 22 января, 2017 1 час назад, DLab сказал: В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД. А как сам запрос правильно сгенерировать? А то я не очень с MySQL. И какой метод шифрования использует IPS? Ибо это точно не MD5 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
asleepmaus Опубликовано 3 апреля, 2017 Поделиться Опубликовано 3 апреля, 2017 $filter = [ 'login' => filter_has_var(INPUT_POST, 'login') ? filter_input(INPUT_POST, 'login', FILTER_UNSAFE_RAW) : null, 'password' => filter_has_var(INPUT_POST, 'password') ? filter_input(INPUT_POST, 'password', FILTER_UNSAFE_RAW) : null ]; $ext = $db->query("SELECT `member_id`, `members_pass_hash`, `members_pass_salt` FROM `core_members` WHERE `name` = '" . $filter['login'] . "'"); if ($ext->rowCount() != 0){ $ext = $ext->fetch(); if ($db->query("SELECT `member_id` FROM `core_members` WHERE `email` = '" . $filter['login'] . "' AND `members_pass_hash` = '" . crypt($filter['password'], '$2a$13$' . $ext['members_pass_salt']) . "'")->rowCount() == 0) echo 'OK'; else echo 'None'; } Лучше через лаунчер к php скрипту обращатся. И получать ответ от него. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.