Я использую подключаемый модуль входа в социальную сеть для входа / регистрации в учетных записях Google. Если пользователь регистрируется впервые, я хочу перенаправить его на страницу «Редактировать профиль», чтобы они могли заполнить информацию своего профиля, и если они не являются новым пользователем и только что вошли в систему, я хочу перенаправить их на страницу домашняя страница после успешного входа в систему. Как я могу проверить, новый ли пользователь? Может нам нужно новое событие типа flynsarmy.sociallogin.afterRegister
? Я попытался прослушать rainlab.user.register
, но он не сработал после регистрации пользователя.
OctoberCMS: Как узнать, был ли пользователь авторизован или зарегистрирован в плагине входа в социальную сеть?
Ответы (1)
На данный момент я имею в виду, что просто из вашего собственного плагина расширьте таблицу User (добавьте дополнительный столбец first_time или fist_time_register) и присвойте ему значение по умолчанию «1».
Я видел в коде, когда он пытается найти пользователя с поставщиком (Google и т. Д.), Если он обнаруживает, что он вернется, войдет в него и перенаправит на страницу успеха.
если не найден, зарегистрируйте его, войдите в систему, затем перенаправьте на страницу успеха.
(проблема в том, что у него нет события после регистрации :( поскольку у него есть flynsarmy.sociallogin.registerUser, но он срабатывает до регистрации, поэтому ..)
так что я думаю каждый раз, когда пользователь регистрируется. default будет установлен на 1, и в следующем запросе вы можете войти в систему, проверьте значение этого столбца, и если его 1 перенаправляет на страницу профиля, когда пользователь заполняет страницу профиля в сохранении, установите это значение на 0, поэтому в следующий раз поток будет на странице успеха.
ОБНОВЛЕНИЕ
Я проверил код плагина rainlabn.user
он зарегистрирует пользователя, используя Auth :: register (.. args), а затем вызовет событие rainlab.user.register
То же самое касается oc-sociallogin-plugin, но но он регистрирует пользователя с помощью Auth :: register (.. args), тогда он не запускается < strong> rainlab.user.register вместо этого запускает событие flynsarmy.sociallogin.registerUser, а также запускает его перед методом регистрации.
Итак, я предполагаю, что в этом случае rainlab.user.register даже не сработает, когда пользователь зарегистрирован с помощью подключаемого модуля oc-sociallogin-plugin.
Я надеюсь, что это поможет в случае возникновения каких-либо проблем, пожалуйста, прокомментируйте.
rainlab.user.register
, я бы смог узнать, был ли пользователь зарегистрирован или вошел в систему. К сожалению, при использовании плагина входа в социальную сеть срабатывает только событие rainlab.user.login
. Любые идеи?
- person B Faley; 21.11.2017
rainlab.user.login
не будет работать, поскольку @ alex-guth упомянул об этом.
- person Hardik Satasiya; 21.11.2017
create
моделиUser
, не так ли? Упомянутое вами событие запускается в компоненте (github .com / rainlab / user-plugin / blob / master / components /) и, следовательно, не будет выполняться, если вы используете социального провайдера. - person Alex Guth   schedule 19.11.2017rainlab.user.register
должен быть запущен, потому чтоAuth::register()
вызывается в плагине для регистрации нового пользователя. - person B Faley   schedule 19.11.2017