Какова правильная концепция интеграции?

Fertnam

Участники
Сообщения
9
Реакции
0
Баллы
298
Добрый день, есть метод для регистрации пользователя на форуме при активации его аккаунта на сайте.

Вопрос состоит в концепции: дело в том, что при регистрации на сайте в базу заносится хеш пароля, что не даёт возможности отправить исходный его исходный вариант как аргумент в дальнейшем. Приходится напрямую запросом менять его в базе.

Корректен ли такой вариант? Или есть способ отменить хеширование при регистрации, чтобы можно было просто свой хеш внести? Или, может быть, было бы лучше создать отдельную группу для неактивированных пользователей (только хотелось бы, чтобы у такой группы не было права на авторизацию)?

Конечно, было бы хорошо регистрацию выполнить только посредством REST API без дополнительного вмешательства в базу.

Спасибо.

PHP:
private static function forumRegister($data, $dbConnect) {
    require_once "{$_SERVER['DOCUMENT_ROOT']}/forum/src/vendor/autoload.php";
         
    $answer = ['status' => true, 'user_id' => null];
         
    try {
        $client = new XenForoUser();
             
        $result = $client->post('caelestis/forum/api/users', [
            'headers' => [
                'XF-Api-Key' => 'ключ',
                'XF-Api-User' => '1'
             ],
             'form_params' => [
                 'username' => $data['username'],
                'password' => 'временный пароль',
                'email' => $data['email']
             ]
        ]);
             
        $forumUser = json_decode($result->getBody(), true);
             
        $dbConnect->query('UPDATE `xf_user_authenticate` SET `data` = "a:1:{s:4:\"hash\";s:60:\"' . $data['password'] . '\";}" WHERE `user_id` = ' . $forumUser['user']['user_id']);
             
        $answer['user_id'] = $forumUser['user']['user_id'];
    } catch (XenForoUserException | PDOException $ex) {
        $answer['status'] = false;
        //echo $ex->getMessage();
    }
         
    return $answer;
}
 
Последнее редактирование:
Так у тебя в форме ты ввел данные у тебя уже там в value хранится твой пароль. Зачем его менять? Менять хеширование или еще что то? Если задача состоит в изменение хеша, то без проблем пишете свой сервис отнаследовавшись от основного ядра и в конфиге укажите свой хешер пароля.
 
Так у тебя в форме ты ввел данные у тебя уже там в value хранится твой пароль. Зачем его менять? Менять хеширование или еще что то? Если задача состоит в изменение хеша, то без проблем пишете свой сервис отнаследовавшись от основного ядра и в конфиге укажите свой хешер пароля.
Регистрация на форуме происходит после активации аккаунта на сайте (переход по сгенерированной ссылке на почте). Проблема в том, что у меня при регистрации на самом сайте пароль сразу хешируется и записывается в базу. Т. е. на момент форумной регистрации есть только хеш, и поэтому приходится делать UPDATE к таблице, чтобы этот хеш вставить. Меня просто смущает этот дополнительный запрос, хочется узнать, корректен ли такой вариант или есть альтернативы получше.
 
как я понял тебе нужно пароль с сайта вставить когда регаешься на сайте после подтверждения по почте, тебе зарегать потом на форуме нужно. Так?
 
Последнее редактирование:
Так и регистрируйте его сразу, при регистрации на сайте шлите по апи и передавайте пользователя, на модерацию или на заблокированный стейт. + Можно в очереди оставлять одобрения. А после подтверждения шлите новый стейт пользователю valid, за место moderated/banned. Или оставить как есть и просто ожидает одобрения по почте сделать его регу. А после подтверждения от сайты реги, меняйте его состояние на подтвержден.
 
Так и регистрируйте его сразу, при регистрации на сайте шлите по апи и передавайте пользователя, на модерацию или на заблокированный стейт. + Можно в очереди оставлять одобрения. А после подтверждения шлите новый стейт пользователю valid, за место moderated/banned. Или оставить как есть и просто ожидает одобрения по почте сделать его регу. А после подтверждения от сайты реги, меняйте его состояние на подтвержден.
Приму к сведению. Спасибо!
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу