Обновить
1

Пользователь

Отправить сообщение

нужно не брать конкретные поля, а исключить hash и signature

/**
 * @param array<string, mixed> $data
 * @return AccessToken
 */
public function auth(array $data): AccessToken
{
    if (Arr::has($data, 'signature')) {
        $check_params = Arr::except($data, ['hash', 'signature']);

        ksort($check_params);

        foreach ($check_params as $param => $value) {
            $check_params[$param] = "$param=$value";
        }

        $data_check_string = config('telegram.bot_id') . ":WebAppData\n";
        $data_check_string .= implode("\n", $check_params);

        try {
            $public_key = sodium_hex2bin(config('telegram.public_key'));
            $signature = base64_decode(strtr(Arr::get($data, 'signature'), '-_', '+/'));

            if (sodium_crypto_sign_verify_detached($signature, $data_check_string, $public_key)) {
                $auth_date = Arr::get($data, 'auth_date');

                if (time() - $auth_date < 86400) {
                    $user = $this->firstOrCreate(
                        json_decode(Arr::get($data, 'user'), true),
                    );
                }
            }
        } catch (SodiumException $e) {
            //
        }
    }

    return isset($user)
        ? $this->createAccessToken($user, md5(json_encode($data)))
        : new AccessToken();
}


что вы собрались ждать в обновлении доки, если там все уже есть?

Как копировать код с картинок?

Вы же заметили, что привели третьим аргументом название организации, которой на тот момент не существовало?

Точно были айподы, друг выиграл и даже прислали, лично в руках держал))

Когда у вас микросервисы начнут тормозить на 10 летней давности железе вы тоже начнёте cpu/ram/drive/etc менять и может даже gpu помощнее поставите? Или всё-таки переедете на свежее железо?

У меня есть два проекта, один на микросервисах, второй на монолите. Предположим, и то и другое одновременно либо написано с головой (код переиспользуется, одинаково хорошо масштабируется, оптимизировано и т.д.), либо из гомна и палок. Оба чуда на X языке и на Y фремворке.

Ситуация 1: обновился X язык и нужно все обновить.

Ситуация 2: обновился Y фремворк и нужно все обновить.

Вопрос 1: всем выгода?

Ситуация 3: в каком-то модуле/микросервисе ошибка.

Вопрос 2: в чем выгода микросервисов/монолита?

Вопрос 3: статья о предпочтениях автора?

P.S. сугубо личное имхо: для выборо того или иного пути, нужно разобраться какими мы ресурсами обладаем, какие цели преследуем. Из плюсов микросервисов вижу только относительная простота конкретного микросервиса (у разработчиков меньше плавятся мозги) и если кто-то что-то утащит из кода, ущерб будет меньше (но разработчикам ли об этом думать?).

Спасибо за внимание :о)

Действительно, как назвать человека из того же Гугла, который решил запретить решаться на номер из РФ? А как назвать того человека, который сказал первому запретить?

При написании второго запроса оптимизировали какой-то вымышленный step-by-step и получили проблему n+1. Добавьте, пожалуйста, в статью ее решение. Вы ведь ее решаете? И разберитесь с именами переменных $arUser, $sHashGenerated, $arExtendedFields, $arConfig, $sCodeConfig, $arParams.

для восстановления паролей, очевидно же)
с почтой можно на день, а то и два+, растянуть то, что можно сделать на дейлике за пару минут.

Если помощь с проблемой нужна, более чем от одного человека, проще договориться о встрече на дейлике, подкорректировать планы, выделить и договориться на всем удобное время. В течении рабочего дня это тоже можно сделать, но времени на это может уйти гораздо больше, учитывая что кто-то может быть занят или отсутствовать.

А я считаю нужно законодательно запретить плодить коммиты на каждое телодвижение и 100500 фиксов во время ревью/тестирования. Потом черт ногу сломит найти в истории что с чем связано.

2

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность