Всем привет помогите пожалуйтста,перелопатил туеву кучу инфы и в голове все в кашу перемешалось,никак не могу разобратьсяс тем как в android приложении следить за тем вошел ли пользователь или нет и со всем что. С этим связано? Все что я понял сводиться к таким действиям
• Пользователь логиниться и я высылаю ему токен (случайный набор знаков) и этот же токен в ввиде хэша сохраняю в БД на сервере
• Когда он заходит в программу в методе оncreate я смотрю есть ли у него этот токен(лежит есть ли он в shared preference),если есть то пропускаю в окно профиля если нету то на окно входа
• Следом свой первый запрос на сервер он посылает с этим токеном и если хэш присланного токена совпадает с тем что лежит в БД то я выдаю ему sesionId (также набор символом но со сроком годности) и также сохраняю его в бд (сохраняю в чистом ввиде) вместе с его сроком
• Теперь все запросы пользователь подписывает этим ид сессии и на сервере проверяю его на совпадение с тем что в бд и со сроком действия,если всю проверку проходит, то я его изменяю(!) обновляю время действия на начало и отправляю пользователю. Если он не совпадает с тем что лежит в БД или вышел срок действия то нужно пройти операцию по получению нового ид сессии с помощью токена лежащего в Sp,путем его сравнивания с тем что в бд,если и он не совпадает то пользователя выкидывает на окно входа
Получилось очень большое описание,но вы уж помогите разобраться все ли я правильно делаю или это вообще полная ерунда,и если полная ерунда то как сделать надо?Спасибо
Я далек от разработки под Android, но могу посоветовать использовать JWT.
После предоставления пользователем логина и пароля отдаете ему 2 токена: access_token и refresh_token.
С помощью access_token пользователь взаимодействует с вашими API, а с помощью refresh_token Вы предоставляете ему возможность обновить данную пару токенов.
Как только задал вопрос решил перечитать про jwt и понял насколько все просто,до этого не так понимал что такое jwt, пздц весь день угробил на решение проблемы а решение уже нашел в самом начале)
StynuBlizz: ну да, MiTM на канале при логоне и привэд: Ваш токен у злой Евы. Вы должны защищать Ваши сессии минимум через однократную двухфакторную авторизацию сразу после установки клиента.
StynuBlizz: Ещё как попляшешь! ))))
HTTPS - это инкапсуляция Вашего трафика. Если Ваш трафик прочитают, а он - окажется криптованным, то нужно ещё будет вскрыть Ваш слой инкапсуляции, чтобы добраться до полезных данных.
Понятно объяснил?
Прочитал статью и она меня ещё сильнее запутала чем чем когда я задавал вопрос, а думал jwt это волшебная таблетка а хер там. По поводу логина и пароля, нет,весь трафик идет по https, по http вообще с сервером не общаюсь только https. Можете ответить тогда на мой изначальный вопрос (так как из-за стать все ещё сильнее запутала) как мне смотреть залогинился ли пользователь или нет?
Или я что-то неправильно понял? Можно делать так? С помощью уникального идентификатора (uuid) который по сути является токеном,я посылаю запрос,на сервере этот токен сверяться с тем что лежит в БД и тогда я получаю доступ внесению изменений в сессии (они хранятся только в бд и никуда не передаются). Ну и разумеется все (вообще все) делается по https
Что за детский обиды,ответ я выбрал потому что он мне разъяснил как и что делать,вы мне всего лишь сказали что это не правильно и дали ссылку я перешел по ссылке она запутал меня еще сильней,и я попросил вас разъяснить чтобы мне стало понятнее что в конце то концов я должен сделать но тут вы "откланиваетесь", так простите с чего это вдруг я должен ваш ответ выбрать решением если он внес только еще большую неразбериху а пояснить вы не захотели?
StynuBlizz: Вы правы. Пусть другие лучше меня объяснят или представьте, что этого линка не существует. Вы много раз уже спрашиваете одно и то же. Я отвечал несколько раз - толку от моих объяснений, как я вижу, полный ноль.
Поэтому, советую Вам почитать и разобраться самому - оно и полезнее будет для Вас.
Вы видимо из-за того что вы уже отвечали на мои вопросы в подобной области, не видите что не смотря на то что вопросы из одной области но являються совсем разные по сути