аутентифікація через

аутентифікація через

Крок 1. Додавання нового додатка

Для початку нам необхідно додати новий сайт в нашу обліковий запис сервісу Mail.ru. Зробити це можна пройшовши по ось цим посиланням. Для роботи прикладу вам потрібно буде самим зареєструвати новий додаток і ввести власні параметри.







На сторінці, в першу чергу, погоджуємося з правилами розміщення сайтів. Далі заповнюємо форму:

аутентифікація через

Далі натискаємо на кнопку "Продовжити" і переходимо до наступного кроку. На третьому кроці необхідно завантажити файл receiver.html, помістити його в каталог вашого проекту і дати Mail.ru можливість перевірити існування даного файлу. Оскільки наш приклад призначений для роботи на локальному сервері, то ми цього робити не будемо. Просто натискаємо кнопку "Продовжити", і на наступній сторінці "Пропустити". Якщо ж ви створюєте приклад для додатка працюючого на якомусь реальному сервері, то спочатку пройдіть процедуру перевірки наявності файлу receiver.html, інакше функціональність вашого прикладу може бути обмежена.

Отже, після успішного додавання сайту в сервіс Mail.ru, нам повинно видасться наступне повідомлення зі спеціальними параметрами:

аутентифікація через

Звідси ми можемо витягти такі параметри, як `ID` додатки,` Приватний ключ` і`Секретний ключ`. Запишемо їх у спеціальні змінні у файлі index.php:

Крок 2. Генерація посилання для аутентифікації

Тут же, в черговий раз, я скористався функцією urldecode. Якщо цього не зробити, то в згенерованої посиланням можуть з'явитися закодовані символи слешів, знаків двокрапки і так далі:

Якщо ж ми пропустимо цей рядок через функцію urldecode, то отримаємо:

Крок 3. Отримання токена

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

В першу чергу, знову сформуємо параметри для цього запиту. Нам буде потрібно передати параметри: `client_id` - id додатки; `Client_secret` - секретний ключ; `Grand_type`, що дорівнює значенню" authorization_code "- код активації; `Code` - url параметр, який прийшов від Mail.ru; `Redirect_uri` - сторінка, на яку буде повернений користувач:

Для того щоб ми далі могли працювати з даними параметрами, декодуємо JSON рядок за допомогою функції json_decode і поміщаємо дані в масив, передавши в якості другого аргументу true.

Крок 4. Отримання інформації про користувача

Тепер, коли у нас є параметри access_token, ми можемо зробити запит до Mail.ru API і отримати інформацію про користувача. Перед тим, як ми підготуємо масив з параметрами, які в наслідку перетворимо на фрагмент url рядки, нам потрібно сформувати спеціальну `подпісь` запиту $ sign за допомогою хеша md5;







У параметр method записуємо назву методу Mail.ru API, який поверне нам інформацію про користувача; параметру secure ставимо 1 - це потрібно для безпеки. Далі в параметр app_id передаємо id нашого застосування; в session_key записуємо access_token - токен доступу, який ми дістали по POST запиту в попередньому кроці і звичайно ж підпис запиту (sig).

В результаті, якщо все було зроблено успішно, то отримаємо JSON відповідь приблизно такого вигляду:

Далі перетворимо JSON відповідь в масив і перевіримо наявність в ньому нульового елемента з ключем uid. Якщо такий елемент є, ізвлечём його із загального масиву $ userInfo за допомогою методу array_shift:

Крок 5. Витяг інформації про користувача

Тепер витягувати інформацію про користувача ми можемо з масиву, що зберігається в змінній $ userInfo, по ключам, які ви можете знайти в лістингу JSON відповіді останнього GET запиту. Я виведу лише кілька значень:

Крок 6. Що ж далі?

Після цього, все що нам залишилося зробити, так це створити сесію і помістити в неї інформацію про наш користувача.

На сторінці виходу з системи просто видаляємо сесію за допомогою функції unset.

Ще один рецепт створення сторонньої аутентификацией у вас в скарбничці.

Справа в тому, що процес роботи з БД для всіх прикладів буде однаковий, а ось в аутентифікації через різні соц мережі є свої характерні деталі.

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

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

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

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

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

    Scar_zadrot
    Акі Іргашев

    Шановні. Адміністратор. Тут на сайті ruseller.com ви зробили піктограму що б знати з чого аунтіфіціровался користувач, як це реалізували. І будь ласка напишіть статтю про аутентифікації через Google, facebook, twitter

    stas.protasevich
    0line

    Виявилося, що яндекс ігнор переданий параметр на засланні редиректу. Довелося прописати йому в настройках в ручну, і все запрацювало. P.S. Дякую за уроки. Дуже цінна інфа!

    аутентифікація через

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

    аутентифікація через

    аутентифікація через

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

    аутентифікація через

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

    аутентифікація через

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