Быстрый PHP-социальный вход с PHP OpenID Connect PHP Client - PHP OAuth Library package blog онлайн урок.


Содержание

Как PHP Social Login может быть реализован с помощью PHP OAuth Client?

Что такое OpenID?

Ограничения OpenID

OpenID против OAuth

Что такое OpenID Connect? Объединение лучших из OAuth и OpenID

Как реализовать приложение PHP для входа в систему с помощью OpenID Connect PHP OAuth Client?

Загрузите библиотеку PHP OAuth, чтобы извлечь выгоду из этого клиента OpenID Connect PHP



Faster PHP Social Login with a PHP OpenID Connect PHP OAuth Library
Как PHP Social Login может быть реализован с помощью PHP OAuth Client?

Как вы, возможно, знаете, OAuth - это протокол, который позволяет приложениям вызывать API веб-сайтов от имени пользователей этих сайтов, поэтому вы можете создавать приложения, расширяющие возможности этих сайтов с помощью функций вашего кода приложения.

Часто OAuth используется для выполнения того, что мы называем

Social Login

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

Что такое OpenID?

OpenID - это протокол для единого входа. Это означает, что несколько сайтов могут использовать общую систему учетных записей, чтобы вести учет зарегистрированных пользователей и проверять их подлинность при входе в систему.

Многие сайты используют единую систему входа, например, Google. Я не уверен, что Google специально использует OpenID в качестве единого протокола входа, но он должен использовать по крайней мере аналогичный протокол, потому что вы можете входить в систему, например, в Gmail с той же учетной записью, что и на YouTube.

Сайт классов PHP

также использует систему единого входа с 2010 года , когда был запущен JS Classes . Идея состоит в том, что пользователям PHP Classes не нужно снова регистрироваться для входа в JS Classes. Таким образом, у них есть только одна учетная запись и один пароль.

Ограничения OpenID

Способ OpenID работает, перенаправляя пользователей с сайта, к которому они обращаются, например PHP-классы, к центральному сайту учетной записи в случае

Icontem Accounts

. Пользователь регистрируется или регистрируется там, а затем перенаправляется обратно на сайт классов PHP. URL-адрес перенаправления содержит значения учетной записи пользователя, такие как его имя, адрес электронной почты и другие значения. Таким образом, PHP-классы получают только данные учетной записи пользователя, которые имеют значение. Пароль пользователя не передается обратно, потому что это необходимо только на сайте учетных записей Icontem для аутентификации.

Проблема такого подхода заключается в том, что иногда URL-адрес перенаправления слишком длинный при использовании протокола OpenID. Иногда браузеры и прокси-серверы мобильных устройств усекают длинные URL-адреса, а информация, передаваемая в URL-адресе, теряется, поэтому процесс единого входа не может быть завершен.

OpenID по сравнению с OAuth

OAuth - это протокол, похожий на OpenID, но работает несколько иначе. Пользователь также перенаправляется на основной сайт приложения, на котором он также аутентифицирован. Когда он закончит, он также будет перенаправлен обратно на исходный сайт.

Основное отличие заключается в том, что URL-адрес для перенаправления на исходный сайт возвращает значение строки токена, которое будет использоваться для получения финального доступа к токену. Этот токен доступа будет использоваться исходным сайтом для вызова API основного сайта и получения сведений о пользователе, среди других операций, которые могут быть выполнены.

Что такое OpenID Connect? Объединение Best of OAuth и OpenID

Как вы понимаете после получения маркера доступа OAuth, основному приложению сайта все равно необходимо выполнить вызов API для получения текущих данных пользователя, таких как имя, адрес электронной почты и т. Д.

OpenID Connect - это просто расширение OAuth 2. Основное различие заключается в том, что серверы OAuth 2, которые понимают спецификацию OpenID Connect, также возвращают детали пользователей, которые запрашивали приложения.

Это делается с использованием возвращаемого значения

id_token

. Это закодированный которое содержит запрошенные данные пользователя и криптографический хеш, поэтому ваше приложение может проверить, не были ли изменены данные пользователя.

Как реализовать приложение PHP для входа в систему с помощью OpenID Connect PHP OAuth Client?

К счастью, вам не нужно полностью понимать технические объяснения, приведенные выше, для реализации приложения, использующего OAuth и OpenID Connect для реализации решения Social Login в PHP.

Все, что вам нужно сделать, - это использовать клиентский класс PHP OAuth, например, в любом другом приложении OAuth, которое использует этот класс для получения сведений о пользователе.

Давайте рассмотрим пример сценария

login_with_microsoft_openid_connect.php

. Если вы хотите получить доступ к любому другому API-интерфейсу социального входа и nbsp; site, например, к примеру Google, приведенный ниже примерный код в основном тот же. Сначала создайте объект класса и задайте тип

server

, чтобы класс читал соответствующие URL-адреса API и другие параметры из файла конфигурации.$ client = новый oauth_client_class; $ client- & gt; server = 'MicrosoftOpenIDConnect';

Установите redirect_uri на текущий URL страницы.

$ client- & gt; redirect_uri = 'https:'. $ _ SERVER ['HTTP_HOST']. dirname (strtok ($ _SERVER ['REQUEST_URI'], '?')). 'login_with_microsoft_openid_connect.php';

Установите клиент приложения OAuth и секретные учетные данные.

$ client- & gt; client_id = 'идентификатор клиента вашего приложения; $ client- & gt; client_secret = 'секрет вашего клиента приложения;

Задайте значения области видимости
openid

и другие типы данных пользователя, которые вы хотите получить.$ client- & gt; scope = 'openid email profile';

Вызовите обычные
Инициализировать

,ПроцессиЗавершитьфункции, чтобы позволить классу сделать все для васif (($ success = $ client- & gt; Initialize ())) {if (($ success = $ client- & gt; Process ())) {

Сделать любые другие вызовы API здесь, если они вам понадобятся. В противном случае оставьте это пустым.

} $ success = $ client- & gt; Finalize ($ success);}

Если классу необходимо перенаправить на сайт сервера API, вам необходимо немедленно закрыть скрипт

if ($ client- & gt; exit) exit;

Если все пойдет хорошо. Сделайте что-нибудь полезное с данными пользователя, обращающимися к переменной класса id_token.

if ($ success) {echo '& lt; h1 & gt;', HtmlSpecialChars (имя клиента и имя_тока), 'вы успешно вошли в систему', 'с Microsoft OpenID Connect! & lt; h1 & GT; '; echo '& lt; pre & gt;', HtmlSpecialChars (print_r ($ client- & gt; id_token, 1)), '& lt; предварительно & GT; ';} else {echo '& lt; pre & gt; Ошибка:', echo HtmlSpecialChars (ошибка $ client- & gt;), '& lt; предварительно & GT; ';}

Загрузите библиотеку PHP OAuth в пользу этого клиента OpenID Connect PHP

Библиотека

PHP OAuth

может быть загружена и установлена ​​из ZIP-архива или с помощью PHP-компилятора . Если вам понравилась эта статья, поделитесь ею с другими друзьями-разработчиками. Опубликуйте комментарий ниже, если у вас есть вопросы или вы хотите высказать свое мнение об этой статье.