|
Возможность регистрации новых пользователей
|
|||
---|---|---|---|
#18+
Добрый день! Помогите пожалуйста с решенные проблемы. Нужно реализовать возможность регистрации новых пользователей (так как на разных сайтах, форумах) И вообще можно реализовать это? Спасибо за любую совет в решены данной проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2010, 15:44 |
|
Возможность регистрации новых пользователей
|
|||
---|---|---|---|
#18+
John Edward Scott - Pro Oracle Application Express там есть раздел Automating User Registration описано ВСЕ шаг за шагом до мельчайших деталей ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2010, 00:08 |
|
Возможность регистрации новых пользователей
|
|||
---|---|---|---|
#18+
Спасибо за помощь. В статье довольно неплохо рассказано как реализовать данную проблему в жизни. Для тех кто тоже столкнется с данной проблемой, хочу перевести ее с английского и разместит в этом же разделе. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2010, 10:02 |
|
Возможность регистрации новых пользователей
|
|||
---|---|---|---|
#18+
Автоматизированная регистрация пользователей Многие приложения позволяют новым пользователям регистрироваться без ручного вмешательства администратора. Как правило, процесс регистрации содержит следующую последовательность шагов: 1. Пользователь вводит детали в форме, в том числе адрес электронной почты. 2. Сообщения отправляется на адрес электронной почты, которая была предоставлена. Это сообщение дает или код, который пользователю необходимо ввести на странице, либо содержит ссылку, пользователь должен нажать для подтверждения аккаунта. 3. После успешной проверки пользователь получит возможность подтвердиться приложении. Вы можете реализовать автоматическую регистрацию пользователя следующими способами: • Создание записи непосредственно в таблице user_repository и использование флажка для определения, аккаунт был подтвержден. • Создание записи в таблице ожидания (holding table) и вставка его в таблицу user_repository, как только пользователь ответил на почтовое письмо для подтверждения. Какой метод вы используете, зависит от ваших потребностей. Если вы считаете, что многие люди будут регистрироваться, но потом не отвечать на письмо подтверждения, Вы можете использовать таблицу ожидания. Это позволит избежать в конечном итоге большого количества неподтвержденных записей в таблице user_repository, которые может повлечь за собой медленную работу за необходимости поиска через несколько записей, когда пользователи пытаются залогиниться. Или вы можете предпочесть созданию записи непосредственно в таблице user_repository, так что вам не придется пройти через процесс копирования записи из таблицы ожидания в таблицу user_repository, а затем удаление этой записи из таблицы ожидания. Создание записи непосредственно в таблице user_repository имеет некоторые другие выгоды. Вы можете использовать флажок, чтобы указать, или запись был подтвержден. Если вы также сохраняете время, когда запись был создан, вы можете использовать запланированное задание, чтобы удалять записи, которые не были проверены в течение определенного периода (например, в течение 48 часов) - таким образом у Вас не будет большого количества неподтвержденных записей в базе. Кроме того, можно воспользоваться функциями, такими как секционирования таблиц, чтобы подтвержденные записи хранились в одном разделе, а неподтвержденные - в другом. В таком случае запрос в Вашей функции аутентификации выиграет от необходимости искать только в одном разделе - подтвержденных записей (если только Вы не хотите выдавать сообщение «Ваш аккаунт не подтверждено». Для демонстрации давайте пройдем через процесс разрешения регистрации пользователя в приложении Buglist. Хотя эта функциональность может быть в действительности непрактичной для этого приложения, эти же методы применяются к другим приложениям. Модификация репозитория пользователей Первый шаг состоит в изменении таблицы user_repository - следует добавить поле verified_flag. - Добавляем новый столбец «verified (проверено)» в таблицу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Теперь вам нужно немного изменить pkg_auth.authenticate, чтобы учитывать метку о подтверждении Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Создание Регистрационной формы Далее вам необходимо создать простую регистрационную форму, где пользователи могут ввести свои данные для хранения в таблице user_repository. Добавление Таблицы ссылку на подтверждение Создать дополнительные таблицы для хранения ссылки на подтверждение, которое будет отправлено пользователю. Теоретически можно хранить ссылки на подтверждение в таблице user_repository, однако ссылкой на подтверждение должно использоваться только в процессе регистрации, поэтому, наверное, нет необходимости загромождать таблицу user_repository этими данными. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Добавление процедуры регистрации пользователя Добавьте процедуру register_user в пакет pkg_auth. Эта процедура будет вставлять данные пользователя в таблицу user_repository, а также генерировать ссылку на подтверждение этого участника и отправлять его по почте. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
В этой процедуре используется следующий код в формировании проверки ссылка: Код: plaintext 1.
Код: plaintext 1.
Здесь мы собираемся изменить страницу регистрации пользователей и добавить процесс страницы PL / SQL, который вызывает процедуру pkg_auth.register_user, используя как параметры элементы страницы, когда пользователь нажимает на кнопку «Зарегистрироваться». Обратите внимание, что вы можете изменить переменную c_base_url, чтобы показать полный URL, которую должен использовать пользователь. Хотя вы можете отправить простое, однолинейная сообщения из тела процедуры register_user, мы вставим фактическую отправку ссылки на подтверждение по электронной почте в отдельную процедуре, чтобы мы могли отправить красиво отформатированный текст по электронной почте. Вы можете даже расширить пример, чтобы отправить HTML-форматирования сообщения электронной почты, а не обычное текстовое сообщение, используя параметр P_BODY_HTML в процедуре APEX_MAIL. Добавление Процедуры отправки подтверждения Ниже приведен код, который показывает порядок отправки электронного письма подтверждения. Обратите внимание, что необходимо будет использовать правильные значения для адреса и номера портов своего сервера электронной почты с тем, чтобы письмо было отправлено. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
Вот пример сообщения, ссылающегося пользователю, если тот регистрируется. Код: plaintext 1. 2. 3. 4. 5.
To verify your email address, simply click the link below, or copy it and paste it into the address field of your web browser (note this should be a single line, but is broken for clarity here. http://apexdemo/pls/apex/apexdemo.pkg_auth.verify_user ➥ ? P_user = markw & p_code = F6C61F52B08B5F9E5A684EFDD63D5709 You only need to click this link once, and your account will be updated. You need to verify your email address within 5 days of receiving this mail. Когда мы свяжем все эти части вместе, у нас будет процесс, который выполняет следующие действия: • Позволяет пользователю представить свои данные на странице • Создает нового пользователя в таблице user_repository со статусом «неподтвержденный» (проверить цезначення 'N') • Сохраняет запись в таблице verification_link, содержащей имя пользователя, при регистрации аккаунта и код подтверждения Работа с ссылкой для подтверждения Последним шагом является написать процедуру, которая будет заниматься проверкой ссылки из сообщения электронной почты, когда его нажмет пользователь. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: plaintext 1. 2. 3.
Обратите внимание на использование SQL% RowCount, Вы можете отправить простое сообщение кориситувацьму браузера, чтобы пользователь узнал или подтверждение прошло успешно. Этот простой пример должен дать вам некоторые идеи о том, как можно настроить автоматизированные системы регистрации. Вы можете легко использовать этот тип автоматизированной регистрации с некоторыми другими схемами аутентификации. Например, если у пользователя открыты cookies, можно хранить флажок подтверждения и код проверки с использованием пользовательских атрибутов, таких как p_attribute_01, p_attribute_02 и т.д. Кроме того, можно сделать много улучшений в этой автоматизированной процедуре регистрации, таких как проверка на уже занятое имя пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2010, 15:40 |
|
|
start [/forum/topic.php?fid=50&msg=36603280&tid=1876983]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 399ms |
0 / 0 |