Одноразова авторизація по посиланню

Одноразова авторизація по посиланню

Іноді корисною функцією на сайті є одноразова авторизація по посиланню. Наприклад, у Вас своя служба підтримки, в якій є закритий розділ спілкування з користувачем. Він задає питання, Ви відповідаєте. Після кожного Вашої відповіді користувач отримує лист з повідомленням про те, що на його питання вже є відповідь. Він переходить по посиланню і змушений авторізовиваться, оскільки його питання закрите від сторонніх. Щоб не створювати таких незручностей, робиться спеціальне посилання, яка відправляється все в тому ж листі. при переході по цьому посиланню користувач автоматично авторизується, плюс потрапляє на відповідну сторінку зі своїм питанням. Ось про реалізацію такої корисної можливості мова сьогодні і піде.

Завдання складається з декількох кроків:

  1. Сформувати посилання.
  2. Надіслати її на e-mail.
  3. При переході по посиланню авторизувати користувача і перенаправити на потрібну сторінку.
  4. З метою безпеки зробити посилання одноразовою.



Для цього нам буде потрібно таблиця:

  • id - унікальний ідентифікатор.
  • user_id - id користувача, який повинен бути авторизований.
  • key - секретний ключ, який буде знаходитися на засланні у вигляді GET-параметра.
  • r - адреса сторінки, куди буде здійснений перехід після авторизації.

Тепер розберемо алгоритм скрипта, який буде викликатися перед відправкою листа користувачу:

  1. отримуємо id користувача, якому ми хочемо створити посилання і якому ми будемо відправляти лист.
  2. Генеруємо випадковий ключ, наприклад, за допомогою функції uniqid ().
  3. Формуємо адреса сторінки, на який повинен потрапити користувач після переходу по одноразової посиланням.
  4. Додаємо в таблицю новий запис з даними отриманими в попередніх пунктах.
  5. Формуємо посилання виду: http: //ваш_сайт/login.php? key = сгенерірованний_ключ.
  6. Відправляємо користувачеві лист з необхідною інформацією та створеної посиланням.



Далі починається робота скрипта login.php:

  1. Прочитуємо значення key.
  2. за значенням key вибираємо запис з таблиці.
  3. Якщо записи, не знайдено, значить, посилання вже була використана, або є підробленою.
  4. за user_id в запису отримуємо логін і пароль з таблиці з користувачами і авторізуемся його.
  5. Видаляємо запис з таблиці з ключами.
  6. Робимо редирект по посиланню з поля "r"У запису.

Ось такий досить прозорий алгоритм одноразової авторизації за посиланням Ви можете зробити у себе на сайті.

А якщо Ви хочете навчитися не тільки створювати, а й реалізовувати алгоритми на мові програмування PHP, то рекомендую подивитися цей курс.

Поділися в соціальних мережах:

Схожі
Як зробити тестування на сайтіЯк зробити тестування на сайті
Як дізнатися реальний ip-адреса відвідувачаЯк дізнатися реальний ip-адреса відвідувача
Обмін посиланнямиОбмін посиланнями
Не можу зайти в контакт і однокласники! Що робити?Не можу зайти в контакт і однокласники! Що робити?
Як зробити типи користувачів на phpЯк зробити типи користувачів на php
Скорочення url-адреси на phpСкорочення url-адреси на php
Як створити голосування на сайтіЯк створити голосування на сайті
Як зробити версію для друкуЯк зробити версію для друку
Як авторизувати комп`ютер в itunesЯк авторизувати комп`ютер в itunes
Як стати передплатником блогу temowind.ru?Як стати передплатником блогу temowind.ru?
» » Одноразова авторизація по посиланню