Jump to content

Авторизация в другом приложении через MySQL

Featured Replies

Можно ли как нибудь сделать авторизацию через MySQL?

Мне к примеру нужно сделать авторизацию в лаунчере Minecraft через MySQL.

Или только можно через REST API?

Link to comment
https://ipbmafia.ru/topic/16399-avtorizaciya-v-drugom-prilozhenii-cherez-mysql/
Share on other sites

Можно читать данные из таблицы core_members

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 хранит пароли пользователей и как именно...

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 хранит пароли пользователей и как именно...

В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД.

1 час назад, DLab сказал:

В базе не хранятся пароли. Там хранятся их контрольные суммы - хеши. Когда мы вводим пароль, он конвертируется в хеш и сверяется с БД.

А как сам запрос правильно сгенерировать?

А то я не очень с MySQL.

И какой метод шифрования использует IPS?

Ибо это точно не MD5

  • 2 месяца спустя...


    $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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.