Artur
Ну нас давно обещает ИИ заменить
Недавно был стартуп, оказалось это индусы код пишут быстро
Artem
Обещанного 3 года ждут
Html-верстальщики уже 10 лет ждут
Ilya
Ну не обновляет(
Что не обновляет?
Anonymous
Что не обновляет?
Во время сессии, приходится перезайти
Artur
Вроде же logging-interceptor для этой проблемы есть
Ilya
Во время сессии, приходится перезайти
Ну если ты не чекаешь сервер на актуальность access token'a, то логично ,что не обновляет.
Ilya
А ещё по хорошему, когда ты делаешь запросы к серверу с неактуальным токеном, то должно присылать ошибку и по ней уже делаешь экран логина
Anonymous
Ну если ты не чекаешь сервер на актуальность access token'a, то логично ,что не обновляет.
Так я его чекаю, если бы не чехал, даже после перезахода не разлогинился бы
Ilya
1 раз чекаешь? Надо постоянно
Artem
Я чет не понимаю в чем задача
Anonymous
1 раз чекаешь? Надо постоянно
А как его постоянно чекать?
Anonymous
странный вопрос
Ну я новичек)
Artem
Может стоит сначала сформулировать задачу внятно, решение само придёт?
Hovhannes
Протухание токена сессии?
Valentyn
Вроде же logging-interceptor для этой проблемы есть
Для обновления токена на лету есть OkHttp Authenticator. Можно и руками обработку ошибок 401 написать, а можно описанным выше средством обойтись.
Artur
М???
Чет я читал что он может пелогинивать сам если токен пропал
Artur
А вот, authenticator
Azek
Вопрос про Paging (андройдовский если что) и RxJava. Совет нужен. Делаю я пейджинг, сделал в общем. Есть у меня BoundaryCallback и методы OnZeroItemsLoaded() и onItemAtEndLoaded(). Делаются в них rx запросы Single<SomeResponse>. Внимание вопрос - как и когда очищать disposable'ы? Может кто делал, есть какие то решения? А может не надо их чистить? Заранее спасибо за советы
Ilya
Ну я новичек)
Просто если ты делаешь запрос к серверу с недействительным access токеном, то он должен присылать какую-то ошибку, там ошибку доступа, и по ней ты показываешь экран логина
Anonymous
Просто если ты делаешь запрос к серверу с недействительным access токеном, то он должен присылать какую-то ошибку, там ошибку доступа, и по ней ты показываешь экран логина
Так и есть, вопрос получается такой: как эту ошибку получить во время сессии, например я сижу в приле и эксес токен не действителен
Valentyn
Просто если ты делаешь запрос к серверу с недействительным access токеном, то он должен присылать какую-то ошибку, там ошибку доступа, и по ней ты показываешь экран логина
Если рефреш токен есть, то не экран логина показать, а в фоне на ходу запросить новый эксес токен и повторить запрос с новым токеном.
Anonymous
Ну он имеет в виду ситуацию, когда пароль сменился. Наверное
Нет зашел например на сайт с тем же логином и паролем, эксес токен меняется
Ilya
Нет зашел например на сайт с тем же логином и паролем, эксес токен меняется
тогда зачем тебе показывать форму с паролем и логином
Valentyn
Нет зашел например на сайт с тем же логином и паролем, эксес токен меняется
Меняется, потому что прошло время и он устарел - надо новый запросить.
Valentyn
У тебя рефреш токен есть?
Mike
Если человек дошел до статик метода то вряд-ли у него чистая функция
што? статик метод здорового человека — и есть чистая функция
Valentyn
У тебя рефреш токен есть?
Или это фишка сайта, заставлять перезаходить? (Такое бывает)
Anonymous
У тебя рефреш токен есть?
Задача такая -если эксес токен поменялся юзера должно переслать на вью логина
Ilya
Если хочешь прям сразу узнать о смене токена, то надо либо в отдельном потоке переодически делать запросы к серверу и чекать access token, либо поднять на дедике какой-нибудь apache сервер, подключить к нему клиента и высылать ему, что access token сменился
Valentyn
Задача такая -если эксес токен поменялся юзера должно переслать на вью логина
Тоесть сервер тебе только эксес токен присылает при логине?
Artem
Илья выше описал
Да он то говорит что экран логина не надо показывать, то надо
Azek
Твой вопрос про рх. Пейджинг непричем тут. Разберись с отпиской диспосабл в рх
Регулярно делаю отписку. Но обычно это делается или во ViewModel или в фрагменте/активити, где есть жизненный цикл. Там все просто, чистишь при уничтожении. А в BoundaryCallbac'е нет жизненного цикла. Я пробовал очищать compositeDisposable при каждом новом вызове метода onItemAtEndLoaded(). Вроде ок, должно прокатить было. Но в итоге список начал скролиться вверх при каждой новой порции данных. Почти день убил на то чтобы понять причину. Теперь вот опять думаю что делать с отпиской
Artem
Всё-таки надо
Ну т.е при получении 401 переслать на экран логина? А что не выходит?
Artem
Каких кнопок? Какого перехода?
Aleksey
Нужно без нажатия кнопок без перехода
ты не знаешь, как открыть экран?
Valentyn
Так и есть, вопрос получается такой: как эту ошибку получить во время сессии, например я сижу в приле и эксес токен не действителен
Так ты хочешь обновить токен без экрана логина? В фоне обновить, чтобы пользователь ничего не заметил?
Ilya
Что?
Типа сразу как только происходит событие на сервере, клиент должен о нём узнавать
Aleksey
https://github.com/AndroidArchitecture/AndroidArchitectureBook/blob/master/cases/auth/Auth_article.md
да ну камон, там с пониманием задачи проблема, а ты кукбуки кидаешь
Azek
Отпишись при уходе с экрана
Надо только прокинуть compositeDisposable во фрагмент как то
Ilya
Какое событие?
смена access токена. ну господи
Artem
смена access токена. ну господи
Ну так 401 будет при запросе, в чем задача-то?
Ilya
тогда его нужно клиенту отправлять как-то
Если он использует REST API, то клиенту отправлять только по запросу клиента
Aleksey
Может наоборот?)
фрагмент в композит?
Azek
Может наоборот?)
Ссылку на фрагмент в BoundaryCallback?)
Ilya
Ну так 401 будет при запросе, в чем задача-то?
Если он не делает никаких запросов
Aleksey
сделает - получит
Valentyn
сделает - получит
И сможет на ходу сразу обновить токен и перепослать запрос.
Valentyn
Зачем с серверами играться, не знаю.
Azek
Ну камон
Что камон, я не от нечего делать решил спросить тут
Aleksey
Зачем с серверами играться, не знаю.
это весело, ты же сюда заходишь зачем-то)
Valentyn
Зачем с серверами играться, не знаю.
Там столько "если" будет, что ну его.