169 похожих чатов

Привет, кто может подсказать есть AuthBloc - на старте проверяет данные

юзера (логи пасс), передает на сервер, оттуда приходит дата истечения лицензии и булево - истекла или нет
Если все ок - перекидывет на Home

GoRouter
redirect: (BuildContext context, GoRouterState state) {
bool loggedIn = injector<AuthBloc>().state is AuthSuccessState;
bool isLoginPage = state.matchedLocation == RouteConstants.loginPath;
if (!loggedIn) {
return isLoginPage ? null : RouteConstants.loginPath;
})
if (loggedIn) {
return RouteConstants.homePath;
}

, где HomeBloc уже получает нужные данные

вопрос, как правильно при работе с HomeBloc проверять при каждом запросе, не истекла ли лицензия
и, если истекла, кидать обратно на страницу Auth?

11 ответов

13 просмотров

У GoRouter есть refreshListenable, можно из репы который знает о состоянии авторизации прокинуть туда стрим и он по твоему редиректу должен перекидывать на логин

Sergiy- Автор вопроса
Oleg Gonchar
У GoRouter есть refreshListenable, можно из репы к...

Да, он у меня слушает аутблок Я не понимаю как в хомблоке правильно вызвать аутблок с евентом для разлогивания

Sergiy
Да, он у меня слушает аутблок Я не понимаю как в х...

Блок из блока не надо вызывать, муветон Лучше на ui через листнеры либо через репы по стримам

Sergiy- Автор вопроса

то есть такой вариант внутри HomeBloc не очень? injector<AuthBloc>().add(const AuthLogoutEvent()); через репы по стримам может есть ссылка на пример, как это реализовать?

Sergiy
то есть такой вариант внутри HomeBloc не очень? i...

Такой вариант очень не очень. По примеру надо поискать что в открытом доступе есть Но суть в том что есть AuthRepository и в нем стрим authState на который подписан роутер и все в апке кто должен про этот стейт знать. Из HomeBloc ты можешь обратиться к методу репы по изменению этого стейта.

Sergiy- Автор вопроса
Oleg Gonchar
Такой вариант очень не очень. По примеру надо пои...

пока так написал listener: (context, homeState) { // Auth error if (homeState is HomeAuthErrorState) { injector<AuthBloc>().add(const AuthInitialEvent()); } работает, гляну для разнообразия как на стримах Спасибо

Sergiy
пока так написал listener: (context, homeState) { ...

Тут можно через контекст просто обратиться, если у тебя блок в дереве виджетов

Sergiy- Автор вопроса
Никита
Тут можно через контекст просто обратиться, если у...

не знаю как это сделать - погуглю тут вопрос возник по гетит injector.registerFactory<HomeBloc>( или registerSingleton сейчас registerSingleton и, когда срабатывает if (homeState is HomeAuthErrorState) { injector<AuthBloc>().add(const AuthInitialEvent()); } работает редирект на аутСкрин потом я возобновляю лицензию, пробую зайти снова и мне выдает, что хомБлок закрыт This error message is related to a Flutter package called provider, which is used for state management. The error message indicates that there's an issue with the usage of the HomeBloc and suggests that it cannot add new events after calling close. тут я немного запутался

Sergiy
не знаю как это сделать - погуглю тут вопрос возн...

Не используй гет ит, если не знаешь для чего он, а тем более, не суй бизнес логику в сервис локатор

Sergiy- Автор вопроса
свифка (макс)
Не используй гет ит, если не знаешь для чего он, а...

Как тогда его изучить не используя?) На своём пет проекте и хочу разобраться

Sergiy
Как тогда его изучить не используя?) На своём пет ...

Для начала надо изучить, для чего он вообще используется P.s. Не для бизнес логики точно)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта