Forumlar / National / Russian / Тех. поддержка / РЕШЕНО Нотификации пользователю один раз после логина

Dayver
#46830 2023-06-03 00:45

Дважды

#46815 Kopusha:

По логике - users.auth.check.done, но всегда могут быть нюансы, 

О каких нюансах вы беспокоитесь?

 

#46825 Kopusha:

Я хочу например понять разницу .done и .main

Разница проста, зайдя на страницу авторизации (просто что бы показать страницу авторизации) отработает код в котором будет опрошена только цепочка хуков: 

users.auth.first
users.auth.main
users.auth.tags

.. это если говорить только о тех которые в login.php

Если же на странице авторизации ввести логин и пароль и отправить форму тогда если все данные пользователя верны и нет никаких банов и запретов то отработает только цепочка

users.auth.first
users.auth.check
users.auth.check.query
users.auth.check.done

после которой произойдёт редирект ( в зависимости от настроек или на главную или еще куда то) и ни users.auth.main ни users.auth.tags не отработают. Потому логично же что нужно использовать последний users.auth.check.done который будет иницироват только в случае успешного логина буквально перед самим редиректом.

 

#46815 Kopusha:

Самое простое и тупое решение - создать в cot_users поле user_new_log = 0, при входе на сайт проверять если 0 то показывать и если перешел на какую то страницу другую 0=1 А при логаут сбрасывать на 0.

Зачем вообще сохранять что то в базе если для этого достаточно сохранить в куках\локальном хранилище факт успешного входа и первого показа уведомления?

Pavlo Tkachenko aka Dayver