Как сделать повторную отправку ссылки активации
Всем приветствия!
Возник, казалось бы, закономерный вопрос: Как реализовать возможность пользователю делать запрос на повторную (автоматическую) отправку письма с ссылкой на активацию его аккаунта?
Практически на всех сайтах, разработанных на Modx, процедура регистрации пользователя выглядит следующим образом:
1) Пользователь регистрируется на сайте.
2) На его email, который он указал при регистрации отправляется письмо с ссылкой активации аккаунта. Как правило, эта ссылка действительна 3 часа.
3) Пользователь открывает письмо, кликает по активационной ссылке и успешно активирует свой аккаунт.
Но…
Но что ему делать, если он, по какой-то причине не получил письмо или же, например, не уложился в 3 часа и активационная ссылка потеряла свою волшебную силу?!
Ведь, в базе данных его профиль не активирован. И если даже он попробует зайти в раздел восстановления пароля (я использую компонент Login, а в данном случае его сниппет ForgotPassword), то указав свой логин или email ему на почту придет письмо с новым паролем и активационной ссылкой, но нажав на эту активационную ссылку он не активирует свой аккаунт, а лишь активирует новый пароль…
Конечно же можно в общей форме сообщить будущим пользователям, чтоб в случае чего обращались к администратору сайта и т.д., но это же не вариант! Особенно, если пользователей сотни да и вообще, не правильно это…
Итак, если подвести итог, вопрос звучит так:
Как реализовать страницу «Повторный запрос на отправку письма активации аккаунта» с формой, где пользователь может ввести свой email и нажав на кнопку «Отправить запрос», получит свою долгожданную ссылку на активацию? Желательно, чтоб можно было делать такой запрос на конкретный email раз в 3 часа.
Перерыл весь гугл, ничего не нашел, даже на зарубежных сообществах.
Среди не актуальных ответов поисковика, нашел топик с практически аналогичным вопросом:
http://forums.modx.com/thread/86110/activate-user-who-didn-t-click-on-registration-activation-link-before-expiry-limit
а так же наткнулся на вот эту страницу сайта, где это реализовано именно так, как надо:
http://do.pstu.ru/login/confirmmail.php
В общем, повторюсь, в других сообществах ничего конкретного нет. Надеюсь в этом сообществе под оправданно амбициозным названием «Крупнейшее русскоязычное MODX сообщество» найдутся ответы…
Ребята помогите! Ведь это же нужно практически всем сайтам, на которых реализована регистрация пользователей. Особенно для тех сайтов на Modx, которые использовали для этого всем известный компонент Login.
P.S.
В стандартном чанке «lgnExpiredTpl» компонента Login, содержится такой код:
Возник, казалось бы, закономерный вопрос: Как реализовать возможность пользователю делать запрос на повторную (автоматическую) отправку письма с ссылкой на активацию его аккаунта?
Практически на всех сайтах, разработанных на Modx, процедура регистрации пользователя выглядит следующим образом:
1) Пользователь регистрируется на сайте.
2) На его email, который он указал при регистрации отправляется письмо с ссылкой активации аккаунта. Как правило, эта ссылка действительна 3 часа.
3) Пользователь открывает письмо, кликает по активационной ссылке и успешно активирует свой аккаунт.
Но…
Но что ему делать, если он, по какой-то причине не получил письмо или же, например, не уложился в 3 часа и активационная ссылка потеряла свою волшебную силу?!
Ведь, в базе данных его профиль не активирован. И если даже он попробует зайти в раздел восстановления пароля (я использую компонент Login, а в данном случае его сниппет ForgotPassword), то указав свой логин или email ему на почту придет письмо с новым паролем и активационной ссылкой, но нажав на эту активационную ссылку он не активирует свой аккаунт, а лишь активирует новый пароль…
Конечно же можно в общей форме сообщить будущим пользователям, чтоб в случае чего обращались к администратору сайта и т.д., но это же не вариант! Особенно, если пользователей сотни да и вообще, не правильно это…
Итак, если подвести итог, вопрос звучит так:
Как реализовать страницу «Повторный запрос на отправку письма активации аккаунта» с формой, где пользователь может ввести свой email и нажав на кнопку «Отправить запрос», получит свою долгожданную ссылку на активацию? Желательно, чтоб можно было делать такой запрос на конкретный email раз в 3 часа.
Перерыл весь гугл, ничего не нашел, даже на зарубежных сообществах.
Среди не актуальных ответов поисковика, нашел топик с практически аналогичным вопросом:
http://forums.modx.com/thread/86110/activate-user-who-didn-t-click-on-registration-activation-link-before-expiry-limit
а так же наткнулся на вот эту страницу сайта, где это реализовано именно так, как надо:
http://do.pstu.ru/login/confirmmail.php
В общем, повторюсь, в других сообществах ничего конкретного нет. Надеюсь в этом сообществе под оправданно амбициозным названием «Крупнейшее русскоязычное MODX сообщество» найдутся ответы…
Ребята помогите! Ведь это же нужно практически всем сайтам, на которых реализована регистрация пользователей. Особенно для тех сайтов на Modx, которые использовали для этого всем известный компонент Login.
P.S.
В стандартном чанке «lgnExpiredTpl» компонента Login, содержится такой код:
<p><strong>Password Reset Information</strong></p>
<p>Your password has already been reset or the link expired. If you need to reset your password again, click <a href="#">here</a>.</p>То есть, получается, что Login как бы дает намек, что это вполне реализуемо его силами… Хотя это всего лишь мои догадки… Комментарии: 14
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Так же посмотрите
rtfm.modx.com/extras/revo/login/login.confirmregister
То что Вы мне ответили, как я понимаю, это не то.
Сниппет «ConfirmRegister» – это обработчик. Когда пользователь кликает по активационной ссылке, то он приходит на страницу, где стоит этот ConfirmRegister. После чего ConfirmRegister решает правильная это активационная ссылка или нет. Если правильная, то сниппет активирует аккаунт пользователя.
Вот смотрите:
1) Страница регистрации
Где:
&activationEmailTpl — шаблон с письмом, которое отправится после удачной отправки формы регистрации. Именно в этом письме и будет активационная ссылка.
&submittedResourceId — страница, на которую перенаправит после удачной отправки формы регистрации. Здесь пишем что-то типа: На ваш email отправлено письмо ссылкой…
&activationResourceId — а вот, собственно, страница, на которой находится сниппет «ConfirmRegister». Именно на эту страницу перенаправит та самая ссылка, которую будущий пользователь кликнет в своем письме.
2) Страница 7 содержит:
Где:
&redirectTo — страница, на которую перенаправит сниппет ConfirmRegister. И перенаправит туда только в том случае, если сниппет ConfirmRegister одобрил активационную ссылку.
&errorPage — здесь указан ID страницы, кторая является 404. Тоесть, для тех, кто зашел на активационную страницу(7) не по активационной ссылке, а напрямую — увидят 404 ошибку.
Так вот, меня же интересует:
Если совсем коротко, то: Как создать активационную ссылку?..
Но, все же, хотелось бы узнать как реализовать форму с двух инпутов (логин и кнопка), которая будет отправлять на указанный email (если он существует в базе) письмо с активационной ссылкой, но не более одного раза в 3 часа.
Компонент Office делает так из коробки. Если пытается войти неактивированный юзер — он получает новое письмо со ссылкой на активацию.
Я так понял, что если просто так не создать, значит необходимо создать не про сто так…
Через несколько дней придется за деньги просить кого-то из сообщества создать такой компонент.
Уверен, что он понадобится не только мне да и не только в странах СНГ.
Да и разместив его на главном репозитории и на modstore.pro, увеличится популяризация как этого сообщества, так и MODX в целом.
P.S.
Приношу извинения за столь поздний ответ. Уезжал, не было возможности…
P.P.S.
По вашему компоненту Tickets тоже будет не мало «хотелок», не сложных, но важных. Сейчас, пока, собираю их в кучу, скоро буду к Вам стучаться!
Не знаю, зачем нужно писать новый компонент.
Нет, не увеличится, проверено много раз.
Вряд ли я чем-то смогу помочь, у меня работа расписана до следующего года.
Как у других дополнений — не знаю.
По умолчанию как раз 10 минут, проверил.
С точки зрения юзабилити — нет.