Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (14)
  • Как сделать регистрацию и авторизацию пользователей через мобильный номер?

    @Tirael78
    необходимо:
    1 подключиться к услуге рассылки СМС, наилучшее решение через существующий шлюз, например по России, мы после большого перебора остановились на smsc.ru (это не реклама), у них хороший api, цены в рынке.
    2 Необходимо реализовать взаимодействие с api смс шлюза на своем сервере (в зависимости от выбора api).
    3 На стороне сервера необходимо генерировать код подтверждения, к примеру набор из 4 или 6 цифр или букв, или иной комбинации. Сохранить связку пользователь - код подтверждения, чтобы иметь возможность сравнения в будущем.
    4 используя api шлюза отправляете код подтверждения на номер пользователя.
    5 абонент вводит код подтверждения и отправляет вам на сервер, любым реализованным вами механизмом.
    6 получив под подтверждения, проверяете, что данному пользователю был отправлен именно этот код. Если данные совпали - авторизуете пользователя.

    Некоторые советы по реализации:
    1 установите срок жизни кода, это нужно для безопасности
    2 введите ограничение на количество попыток ввода, опять же для безопасности
    3 при взаимодействии с api шлюза, необходимо анализировать ответы на ваши запросы, скажем человек ввел не существующий номер телефона, ошибся, вам необходимо корректно обработать данную ситуацию, подобных моментом может быть достаточно много.
    4 некоторые шлюзы (как например указанный мной выше) примут российский номер в формате 89 и так далее, но надо понимать что не факт что все шлюзы так поступят, правильный код России 7, и следовательно номер мобильного должен начинаться на 79, в других странах есть свои особенности, и это надо учитывать.
    5 установите срок жизни СМС сообщения (если шлюз позволяет это в своем api) не более срока жизни кода на вашем сервере, к примеру человек вне зоны действия сети, и СМС придет к нему через 1 час, когда уже не будет актуальна, в итоге вы заплатите за бессмысленное СМС сообщение, если у вас много абонентов, в итоге может набежать большая сумма. А так, сообщение просто не будет отправлено и вы сэкономите деньги.

    На самом деле там еше много нюансов, в зависимости от потребности вашего сервиса, но в общих чертах примерно так.
    Ответ написан
    Комментировать
  • Как в python отследить изменился ли параметр в классе?

    @Tirael78
    Конечно можно. Нужно использовать дискрипторы, в очень облегченном виде что то типа:

    class Notepad:
        def __init__(self):
            self._is_change = False
            self.code = None
    
        def __setattr__(self, key, value):
            if key is 'code' and value is not None:
                self.__dict__['_is_change'] = True
                self.__dict__['code'] = value
            else:
                self.__dict__[key] = value
    
        def save(self):
            print('Тут вот сохранили данные на диск')
            self._is_change = False
    
        @property
        def is_change(self):
            return self._is_change


    note_text = Notepad()
    print('is_change {}'.format(note_text.is_change))
    print('Изменили данные в self.code')
    note_text.code = 'bla bla'
    print('is_change {}'.format(note_text.is_change))
    note_text.save()
    print('is_change {}'.format(note_text.is_change))


    на выходе получим
    is_change False
    Изменили данные в self.code
    is_change True
    Тут вот сохранили данные на диск
    is_change False
    Ответ написан
    1 комментарий
  • Как сделать маршрутизацию URLов в WSGI-приложении на python *без* фреймворков?

    @Tirael78
    Правильное решение - написать парсер, пусть даже самый простой, например с помощью split, разбить строку на параметры, и потом , в зависимости от того бывают ли у вас параметризованные строки или нет, вычленять параметры или просто обработать полученные данные.
    Ответ написан
    2 комментария
  • Целесообразно делать чат-бота на python? Если да то есть ли какие то библиотеки упрощающие это дело(то есть заточенные под это)?

    @Tirael78
    наверно имеет смысл уточнить для какой платформы вам нужен чат-бот, скажем телеграм или фейсбук.
    в зависимости от вашего ответа нужно выбирать ту или иную библиотеку, или просто использовать api от разработчиков.
    От конкретной задачи зависит.
    Ответ написан
    5 комментариев
  • Как получить доступ к интерфейсу из другого модуля?

    @Tirael78
    Завершается она как раз таки с ошибкой и очень серьезной - вы совершили рекурсивный вызов и приложение упало достигнув предела рекурсии.

    Если вы хотите получить доступ к объекту из разных модулей, то, либо инициализируйте его в третьем модуле и импортируйте, либо передавайте как ссылку на объект.
    Это так, на вскидку, без понимания почему вам нужно сделать именно так.

    Вообще вам имеет смысл почитать о том как правильно развязывать компоненты в приложении.
    Ответ написан
    3 комментария