Posted 22 января, 20177 yr comment_120863 Можно ли как нибудь сделать авторизацию через MySQL? Мне к примеру нужно сделать авторизацию в лаунчере Minecraft через MySQL. Или только можно через REST API?
22 января, 20177 yr Author comment_120866 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 хранит пароли пользователей и как именно...
22 января, 20177 yr comment_120871 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 хранит пароли пользователей и как именно... В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД.
22 января, 20177 yr Author comment_120873 1 час назад, DLab сказал: В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД. А как сам запрос правильно сгенерировать? А то я не очень с MySQL. И какой метод шифрования использует IPS? Ибо это точно не MD5
3 апреля, 20177 yr comment_126208 $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 скрипту обращатся. И получать ответ от него.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.