Posted 22 января, 20177 yr comment_120863 Можно ли как нибудь сделать авторизацию через MySQL? Мне к примеру нужно сделать авторизацию в лаунчере Minecraft через MySQL. Или только можно через REST API? Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/ Share on other sites Больше вариантов
22 января, 20177 yr comment_120865 Можно читать данные из таблицы core_members Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/?&do=findComment&comment=120865 Share on other sites Больше вариантов
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 хранит пароли пользователей и как именно... Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/?&do=findComment&comment=120866 Share on other sites Больше вариантов
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 хранит пароли пользователей и как именно... В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД. Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/?&do=findComment&comment=120871 Share on other sites Больше вариантов
22 января, 20177 yr Author comment_120873 1 час назад, DLab сказал: В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД. А как сам запрос правильно сгенерировать? А то я не очень с MySQL. И какой метод шифрования использует IPS? Ибо это точно не MD5 Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/?&do=findComment&comment=120873 Share on other sites Больше вариантов
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 скрипту обращатся. И получать ответ от него. Link to comment https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/?&do=findComment&comment=126208 Share on other sites Больше вариантов
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.