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 ответов

4 просмотра

У 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. Не для бизнес логики точно)

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
> комьюнити я бы не судил по этому чату. Как мы видели по статам просмотров нескольких телеговских постов, то в чате их набивается 30-40 или даже выше, когда как общаются акти...
Constantin F.
4
Как сделать чтобы short точно был 2 байта, int точно 4 байта ?(без стандартных библиотек, ну типа без int16_t, int32_t)
#
8
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Карта сайта