Одноразова авторизація по посиланню
Іноді корисною функцією на сайті є одноразова авторизація по посиланню. Наприклад, у Вас своя служба підтримки, в якій є закритий розділ спілкування з користувачем. Він задає питання, Ви відповідаєте. Після кожного Вашої відповіді користувач отримує лист з повідомленням про те, що на його питання вже є відповідь. Він переходить по посиланню і змушений авторізовиваться, оскільки його питання закрите від сторонніх. Щоб не створювати таких незручностей, робиться спеціальне посилання, яка відправляється все в тому ж листі. при переході по цьому посиланню користувач автоматично авторизується, плюс потрапляє на відповідну сторінку зі своїм питанням. Ось про реалізацію такої корисної можливості мова сьогодні і піде.
Завдання складається з декількох кроків:
- Сформувати посилання.
- Надіслати її на e-mail.
- При переході по посиланню авторизувати користувача і перенаправити на потрібну сторінку.
- З метою безпеки зробити посилання одноразовою.
Для цього нам буде потрібно таблиця:
- id - унікальний ідентифікатор.
- user_id - id користувача, який повинен бути авторизований.
- key - секретний ключ, який буде знаходитися на засланні у вигляді GET-параметра.
- r - адреса сторінки, куди буде здійснений перехід після авторизації.
Тепер розберемо алгоритм скрипта, який буде викликатися перед відправкою листа користувачу:
- отримуємо id користувача, якому ми хочемо створити посилання і якому ми будемо відправляти лист.
- Генеруємо випадковий ключ, наприклад, за допомогою функції uniqid ().
- Формуємо адреса сторінки, на який повинен потрапити користувач після переходу по одноразової посиланням.
- Додаємо в таблицю новий запис з даними отриманими в попередніх пунктах.
- Формуємо посилання виду: http: //ваш_сайт/login.php? key = сгенерірованний_ключ.
- Відправляємо користувачеві лист з необхідною інформацією та створеної посиланням.
Далі починається робота скрипта login.php:
- Прочитуємо значення key.
- за значенням key вибираємо запис з таблиці.
- Якщо записи, не знайдено, значить, посилання вже була використана, або є підробленою.
- за user_id в запису отримуємо логін і пароль з таблиці з користувачами і авторізуемся його.
- Видаляємо запис з таблиці з ключами.
- Робимо редирект по посиланню з поля "r"У запису.
Ось такий досить прозорий алгоритм одноразової авторизації за посиланням Ви можете зробити у себе на сайті.
А якщо Ви хочете навчитися не тільки створювати, а й реалізовувати алгоритми на мові програмування PHP, то рекомендую подивитися цей курс.
Як просто
Не можу зайти в контакт і однокласники! Що робити?
Як вконтакте зробити посилання на людину?
Як створити голосування на сайті
Як стати передплатником блогу temowind.ru?
Як зробити типи користувачів на php
Як в word за посиланням перейти до змісту.
Як запустити php-функцію натисканням на посилання
Як зробити тестування на сайті
Що таке анкор?
Як дізнатися реальний ip-адреса відвідувача
Як зробити версію для друку
Як відновити mail.ru
Як зробити реєстрацію та авторизацію користувачів на сайті
Як авторизувати комп`ютер в itunes
Як зробити сторінку користувача
Обмін посиланнями
Скорочення url-адреси на php
Забули пароль skype - відновлюємо доступ до аккаунту
Тестування на сайті myrusakov.ru
Тип меню: список матеріалів в архіві
Як зробити тестування на сайті
Як дізнатися реальний ip-адреса відвідувача
Не можу зайти в контакт і однокласники! Що робити?
Як зробити типи користувачів на php
Скорочення url-адреси на php
Як створити голосування на сайті
Як зробити версію для друку
Як авторизувати комп`ютер в itunes
Як стати передплатником блогу temowind.ru?