OctoberCMS: Как узнать, был ли пользователь зарегестрирован или зарегистрирован в плагине социального входа?
Я использую плагин Social Login для входа в систему / регистрации в аккаунтах Google. Если пользователь регистрируется в первый раз, я хочу перенаправить его на страницу "Редактировать профиль", чтобы он мог заполнить информацию своего профиля, и если он не новый пользователь и только вошел в систему, я хочу перенаправить его на домашняя страница после успешного входа. Как я могу проверить, если пользователь новый? Может быть, нам нужно новое событие, как flynsarmy.sociallogin.afterRegister
? Я пытался слушать rainlab.user.register
но он не сработал после регистрации пользователя.
1 ответ
На данный момент я имею в виду, что только из вашего собственного плагина расширьте таблицу User (добавьте дополнительный столбец first_time или fist_time_register) и присвойте ему значение по умолчанию "1".
Я видел в коде, когда он пытается найти пользователя с провайдером (Google и т. Д.), Если он найдет, он вернется и войдет в него и перенаправит на страницу успеха.
если он не найден, зарегистрируйте его, войдите в систему и перенаправьте на страницу успеха.
(проблема в том, что у него нет события после регистрации:(так как оно имеет flynsarmy.sociallogin.registerUser, но оно срабатывает до регистрации, так что..)
так что я думаю каждый раз, когда пользователь регистрируется. по умолчанию будет установлено значение 1, и в следующем запросе вы сможете войти в систему, пользователь проверит значение этого столбца, и если его 1 перенаправит на страницу профиля, при заполнении пользователем страницы профиля при сохранении установите это значение равным 0, чтобы в следующий раз поток переходил на страницу успеха.
ОБНОВИТЬ
Я проверил код плагина rainlabn.user
он зарегистрирует пользователя, используя Auth::register(..args), а затем сработает событие rainlab.user.register
То же самое касается oc-sociallogin-plugin, но он зарегистрирует пользователя с помощью Auth::register(..args), тогда он не запускает rainlab.user.register, а запускает событие flynsarmy.sociallogin.registerUser, а также запускает его перед регистрацией метод.
Итак, я думаю, что в этом случае rainlab.user.register даже не сработает, когда пользователь зарегистрирован с помощью плагина oc-sociallogin- plugin.
Я надеюсь, что это поможет в случае любой проблемы, пожалуйста, прокомментируйте.