Одноразова авторизація по посиланню
Іноді корисною функцією на сайті є одноразова авторизація по посиланню. Наприклад, у Вас своя служба підтримки, в якій є закритий розділ спілкування з користувачем. Він задає питання, Ви відповідаєте. Після кожного Вашої відповіді користувач отримує лист з повідомленням про те, що на його питання вже є відповідь. Він переходить по посиланню і змушений авторізовиваться, оскільки його питання закрите від сторонніх. Щоб не створювати таких незручностей, робиться спеціальне посилання, яка відправляється все в тому ж листі. при переході по цьому посиланню користувач автоматично авторизується, плюс потрапляє на відповідну сторінку зі своїм питанням. Ось про реалізацію такої корисної можливості мова сьогодні і піде.
Завдання складається з декількох кроків:
- Сформувати посилання.
- Надіслати її на 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
- Тип меню: список матеріалів в архіві