Генеруємо одноразові посилання

створення URL

Припустимо, що у нас на сайті є система аутентифікації користувачів. Після реєстрації ми просимо користувача пройти процедуру верифікації email-а. Для створення подібних посилань можемо скористатися спеціальним параметром token. Приклад подібної посилання:

Без бази даних тут нам не обійтися, тому давайте подивимося на таблицю, з якої будемо працювати.

У таблиці будемо зберігати 3 поля: токен, ім'я користувача і час. Для генерації токена ми скористаємося функцією sha1 (), яка видає рядок з 40 символів. Поле tstamp буде зберігати час генерації токена для того, щоб ми могли відстежити посилання з закінченим терміном.

Існує безліч способів генерації токена, проте в цьому уроці ми скористаємося функціями uniqid () і sha1 (). Незалежно від способу генерації токена, переконайтеся що генеруються значення будуть різними і ймовірність появи дублікатів мінімальна.

Як параметр функція uniqid () приймає рядок, а на виході дає унікальний ідентифікатор, заснований на переданій аргументі і поточний час. Також, в якості другого аргументу, дана функція приймає логічне значення, яке дасть сигнал uniqid додати кілька додаткових символів для збільшення ймовірності унікальності значення. Функція sha1 приймає унікальний ідентифікатор і створює хеш.

Для того щоб ми знали, якого користувача слід активувати, в таблицю будемо записувати і логін користувача. У прикладі, більш пристосованому для реального сайту, можете скористатися ID користувача.

Отриману посилання можемо відправити користувачеві по email-у або будь-яким іншим способом:

Також нам потрібно передбачити перевірку токенов, час життя яких минув:

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

Даний метод можна застосувати не тільки для активації облікових записів користувачів, але і в інших потребах: наприклад, для надання одноразової або тимчасового доступу до якогось ресурсу чи послуги.

Додатково до всього цього, ви можете створити скрипт, який буде видаляти маркери, якими ні разу не користувалися. Даний скрипт можна запускати самим час від часу або застосувати для цього cron.

5 останніх уроків рубрики "PHP"

Коли мова йде про безпеку веб-сайту, то фраза "фільтруйте все, екрануйте все" завжди буде актуальна. Сьогодні поговоримо про фільтрації даних.

  • Expressive 2 підтримує можливість підключення інших ZF компонент за спеціальною схемою. Не всім подобається це рішення. У цій статті ми розповімо як поліпшили процес підключення декількох модулів.

  • Припустимо, що вам необхідно відправити якусь інформацію в Google Analytics з серверного скрипта. Як це зробити. Відповідь в цій замітці.

  • Підбірка з декількох видів PHP пісочниць. На деяких ви в режимі online зможете потестить свій код, але є так само рішення, які можна впровадити на свій сайт.

    sanya797

    Генеруємо одноразові посилання

    За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!

    Генеруємо одноразові посилання

    Генеруємо одноразові посилання

    Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

    Генеруємо одноразові посилання

    Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

    Генеруємо одноразові посилання

    Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!