• Как разделить Android Activity или фрагменты и состояние приложения?

    VYakushev
    @VYakushev
    Разработчик Android в Nowtaxi
    Я использую для этого стейт-машину:
    1. Создаем обертку для стейт-машины, в которую есть возможность передать событие. ПРодумываем сохранение и восстановление состояния
    2. Используем Singleton или Dependecy Injection для получения ссылки на нашу обертку
    3. Прописываем состояния и события стейт-машины
    4. Создаем интерфейс для подписки на стейт-машину, в котором есть метод возвращающий фрагмент или интент
    5. Каждый фрагмент или активити наследуются от базового, который имплементирует интерфейс подписчика. В обработчики стартуем пришедший интент или фрагмент
    6. В самой активити и фраменте отправляем стейт-машине события
    Ответ написан
  • Правильно ли я понял, как работает токен?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да. Все верно.

    Единственное что добавлю, пересылать токен лучше в заголовках. Причем желательно, поскольку механизм аутентификации нестандартный, в заголовке X-Authorization. Если вы решите хранить токен в куках и передавать его, это желательно должны быть http-only куки (хотя в случае JWT не обязательно) и на сервере должна быть защита от CSRF атак.

    Так же поскольку у нас по сети гуляют по сути креденшелы, важно использовать SSL. Благо сегодня есть lets-encrypt что бы бесплатно получить сертификаты.

    И последнее, что бы обезопасить себя еще, используйте refresh-токены. То есть наш уникальный токен который гуляет в каждом запросе будет иметь ограничение по времени жизни (скажем 5 минут) и для его обновления мы будем использовать refresh-токен. При получении refresh токена клиенту уходит новая пара токен + refresh-токен.

    Таким образом у злоумышленника который перехватил токен пользователя будет окно всего в 5 минут что бы что-то сделать.
    Ответ написан
    13 комментариев