авто-авторизация после регистрации.

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Как сразу авторизировать юзера и перенаправить в профиль?

#1 6 мая 2015 в 11:28
Друзья, подскажите пожалуйста, как можно сделать что бы после регистрации, пользователь автоматически авторизировался на сайте. По ка что только всплывает вверху сообщение что "Вы успешно зарегистрировались" и редирректит на главную.
Подскажите хотя бы какой файл обрабатывает метод post при регистрации, догадываюсь что там можно и авто-авторизацию сделать и реддирект.

Буду очень благодарен за подсказку.

З.Ы. Снова забыл указать версию😊INCMS 2.1.1 Последняя.
#2 6 мая 2015 в 11:44
Последняя InstantCMS 2.2.1
А как же авторизация через почту?
#3 6 мая 2015 в 12:41


Последняя InstantCMS 2.2.1
А как же авторизация через почту?

Cтудия Sitestroi

Да простите, перепутал версию. Вобщем у меня последняя. Скачал несколько дней назад.

Авторизация через почту мне не нужна. Мне нужно чтоб после регистрации юзера сразу редиректило в редактирование его профиля, а для этого нужно что бы он был авторизирован.
#4 6 мая 2015 в 16:10
Блицкриг, в настройках компонента "Авторизация и регистрация" уберите галочки "Требовать подтверждения e-mail при регистрации" и "Регистрация только по приглашениям". Наверное это хотел сказать Cтудия Sitestroi.
#5 9 мая 2015 в 21:02


Блицкриг, в настройках компонента "Авторизация и регистрация" уберите галочки "Требовать подтверждения e-mail при регистрации" и "Регистрация только по приглашениям". Наверное это хотел сказать Cтудия Sitestroi.

Loadырь

Я это и так знаю. Я спрашивал немного о другом… объясню подробней.
Когда юзер регистрируется, после того как заполнит форму регистрации и нажмёт кнопку "Отправить", редиректит на главную страничку сайта и он неавторизирован. Всплывает зелёная полоска с текстом "Вы успешно зарегистрировались" и всё.
После чего он вводит свои данные и входит на сайт.
Я спрашивал в каком файле можно это отредактировать, то есть сделать чтоб после регистрации, всплывала не только полоска с сообщением что он успешно зарегался, но и автоматом авторизировало и перенаправляло на страницу редактирования профиля.
Я не могу найти в каком контроллере (файле) нужно этот код писать. Код авто-авторизации и редиректа на редактирование его профиля. Вот о чём я спрашивал. К сожалению сие через админку не решить.

З.Ы. Ещё подскажите пожалуйста, есть ли аналог вот такой записи на редирект редактирования профиля: $this->redirectToHome, что то типо redirectTo EditProfile
#6 12 мая 2015 в 14:26
Ребят, ну неужели никто не знает. Пожалуйста помогите. Хотя бы как авторизировать сразу пользователя после регистрации, с редиректом сам буду разбираться.
#7 12 мая 2015 в 19:32
Блицкриг,
По поводу редиректа: есть в файле \system\core\controller.php такая функция
  1. /**
  2.   * Редирект на главную страницу
  3.   */
  4. public function redirectToHome(){
  5. $this->redirect(href_to_home());
  6. }
  7.  
Вероятно, для редиректа на профиль нужно создать в той же папке функцию с переадресацией на профиль текущего юзера.

Если Вы не сильно торопитесь — попробую сделать такое. В пхп вообще ничего не смыслю, поэтому придется делать методом научного тыканья… раз профессионалы помочь не хотят...

В общем редирект на профиль пользователя после авторизации можно организовать двумя способами:
1. Прямо в файле \system\controllers\auth\actions\register.php в 233 строке вместо $this->redirectToHome вписать $this->redirect(href_to('users', $user->id));
2. Вписать туда же $this->redirectToUser, а в файле \system\core\controller.php создать новую функцию
  1. public function redirectToUser(){
  2. $this->redirect(href_to('users',$user->id));
  3. }
Сразу предупреждаю, толку от этих редиректов ровным счетом никакого, потому что новозарегистрированный пользователь пока не авторизован, сессия не начата и никакого id у этого юзера нет. Поэтому оба эти способа выбрасывают на site.ru/users то есть на список пользователей.
При этом выдается надпись об успешной регистрации, но вход на сайт не произведен.
#8 13 мая 2015 в 02:18


Сразу предупреждаю, толку от этих редиректов ровным счетом никакого, потому что новозарегистрированный пользователь пока не авторизован, сессия не начата и никакого id у этого юзера нет. Поэтому оба эти способа выбрасывают на site.ru/users то есть на список пользователей.
При этом выдается надпись об успешной регистрации, но вход на сайт не произведен.

HiAndy


Вот в этом то и проблема. С редиректом я точно так же разобрался. А вот с сессиями и кукисами у меня всегда было дико сложно.
Теоретически я понимаю что после регистрации, введённые пользователем данные должны попасть вроде как в кукисы и записаться в сессию… перед редиректом должна проверка сессии пройти вроде как и если всё ок перекинуть на редактирование профиля… как то так наверное. В пыхе не силён, потому и клянчил помощ у спецов тут =)
Не знаю как это сделать, надеюсь ребята всё же помогут с авто-авторизацией.

UPD: $this->redirect(href_to('users', $user->id)); Это не нужно вписывать, кстати, в контроллер регистрации (auth/controllers/actions бла бла бла register.php)
Достаточно $this->redirectToUser(); при условии что создана функция.
#9 13 мая 2015 в 06:28
Блицкриг, попробуйте этот файл, сам не тестировал, но теоретически должен сработать.
#10 13 мая 2015 в 06:36


Блицкриг, попробуйте этот файл, сам не тестировал, но теоретически должен сработать.

Loadырь

Вы даже не представляете как вы меня выручили. Огромное вам спасибо! И конечно + в карму. Пойду сравнивать с дефолтным, разбираться как реализовано dance
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.