Класс yii\authclient\OpenId
| Наследование | yii\authclient\OpenId » yii\authclient\BaseClient » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\authclient\ClientInterface, yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-authclient/blob/master/OpenId.php |
OpenId предоставляет простой интерфейс для аутентификации OpenID (1.1 и 2.0).
Поддерживает обнаружение Yadis и HTML.
Использование:
use yii\authclient\OpenId;
$client = new OpenId();
$client->authUrl = 'https://open.id.provider.url'; // Setup provider endpoint
$url = $client->buildAuthUrl(); // Get authentication URL
return Yii::$app->getResponse()->redirect($url); // Redirect to authentication URL
// After user returns at our site:
if ($client->validate()) { // validate response
$userAttributes = $client->getUserAttributes(); // get account info
...
}
Расширения AX и SREG поддерживаются. Для их использования укажите $requiredAttributes и/или $optionalAttributes.
См. также http://openid.net/.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $authUrl | string | Базовый URL аутентификации, который должен использоваться для составления фактического URL аутентификации методом buildAuthUrl(). | yii\authclient\OpenId |
| $axToSregMap | array | Отображение соответствий между именами атрибутов AX и SREG в формате: axAttributeName => sregAttributeName | yii\authclient\OpenId |
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $cainfo | string | Имя файла, содержащего один или несколько сертификатов для проверки стороны. | yii\authclient\OpenId |
| $capath | string | Директория, содержащая несколько сертификатов CA. | yii\authclient\OpenId |
| $claimedId | string | Заявленный идентификатор (идентичность). | yii\authclient\OpenId |
| $data | array | Данные, которые должны быть использованы для получения ответа OpenID. | yii\authclient\OpenId |
| $httpClient | yii\httpclient\Client | Внутренний HTTP-клиент. | yii\authclient\BaseClient |
| $id | string | Идентификатор сервиса. | yii\authclient\BaseClient |
| $name | string | Имя сервиса. | yii\authclient\BaseClient |
| $normalizeUserAttributeMap | array | Отображение нормализации атрибутов пользователя. | yii\authclient\BaseClient |
| $optionalAttributes | array | Список атрибутов, которые могут быть возвращены сервером. | yii\authclient\OpenId |
| $requestOptions | array | Параметры HTTP-запроса. | yii\authclient\BaseClient |
| $requiredAttributes | array | Список атрибутов, которые всегда должны возвращаться сервером. | yii\authclient\OpenId |
| $returnUrl | string | URL возврата аутентификации. | yii\authclient\OpenId |
| $stateStorage | yii\authclient\StateStorageInterface | Хранилище состояния. | yii\authclient\BaseClient |
| $title | string | Заголовок сервиса. | yii\authclient\BaseClient |
| $trustRoot | string | Корень доверия клиента (область). | yii\authclient\OpenId |
| $userAttributes | array | Список атрибутов пользователя. | yii\authclient\BaseClient |
| $verifyPeer | boolean | Подтверждать ли сертификат клиента. | yii\authclient\OpenId |
| $viewOptions | array | Параметры представления в формате: optionName => optionValue | yii\authclient\BaseClient |
Публичные методы
| validate() | Выполняет проверку OpenID у OP. | yii\authclient\OpenId |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| buildAuthUrlV1() | Строит URL авторизации для протокола версии 1. | yii\authclient\OpenId |
| buildAuthUrlV2() | Строит URL авторизации для протокола версии 2. | yii\authclient\OpenId |
| buildAxParams() | Составляет параметры запроса AX. | yii\authclient\OpenId |
| buildSregParams() | Составляет параметры запроса SREG. | yii\authclient\OpenId |
| buildUrl() | Объединяет заданные URL в один. | yii\authclient\OpenId |
| compareUrl() | Сравнивает 2 URL, учитывая возможные расхождения в порядке параметров GET и несоответствия в кодировании URL. | yii\authclient\OpenId |
| createHttpClient() | Создаёт экземпляр HTTP-клиента из ссылки или конфигурации. | yii\authclient\BaseClient |
| defaultName() | Генерирует имя сервиса. | yii\authclient\BaseClient |
| defaultNormalizeUserAttributeMap() | Возвращает значение по умолчанию для $normalizeUserAttributeMap. | yii\authclient\BaseClient |
| defaultRequestOptions() | Возвращает значения по умолчанию для HTTP-запросов. | yii\authclient\OpenId |
| defaultReturnUrl() | Генерирует значение по умолчанию для $returnUrl. | yii\authclient\OpenId |
| defaultTitle() | Генерирует заголовок сервиса. | yii\authclient\BaseClient |
| defaultViewOptions() | Возвращает значение по умолчанию для $viewOptions. | yii\authclient\BaseClient |
| extractHtmlTagValue() | Сканирует содержимое на наличие тегов и извлекает информацию из них. | yii\authclient\OpenId |
| fetchAxAttributes() | Получает атрибуты AX, предоставленные OP. | yii\authclient\OpenId |
| fetchSregAttributes() | Получает атрибуты SREG, предоставленные OP. Имена атрибутов SREG будут сопоставлены с именами AX. | yii\authclient\OpenId |
| getState() | Возвращает значение постоянного состояния. | yii\authclient\BaseClient |
| getStateKeyPrefix() | Возвращает префикс ключа сессии, используемый для хранения внутренних состояний. | yii\authclient\BaseClient |
| initUserAttributes() | Инициализирует атрибуты аутентифицированного пользователя. | yii\authclient\OpenId |
| normalizeUserAttributes() | Нормализует заданные атрибуты пользователя в соответствии с $normalizeUserAttributeMap. | yii\authclient\BaseClient |
| removeState() | Удаляет значение постоянного состояния. | yii\authclient\BaseClient |
| sendRequest() | Отправляет запрос на сервер. | yii\authclient\OpenId |
| setState() | Устанавливает постоянное состояние. | yii\authclient\BaseClient |
| validateRequiredAttributes() | Проверяет, присутствуют ли все необходимые атрибуты в ответе сервера. | yii\authclient\OpenId |
Подробное описание свойств
$authUrl общедоступное свойство
Базовый URL авторизации, который следует использовать для построения фактического URL авторизации методом buildAuthUrl().
public string $authUrl = null
$axToSregMap общедоступное свойство
Карта соответствий между именами атрибутов AX и SREG в формате: axAttributeName => sregAttributeName
public array $axToSregMap = ['namePerson/friendly' => 'nickname', 'contact/email' => 'email', 'namePerson' => 'fullname', 'birthDate' => 'dob', 'person/gender' => 'gender', 'contact/postalCode/home' => 'postcode', 'contact/country/home' => 'country', 'pref/language' => 'language', 'pref/timezone' => 'timezone']
$cainfo общедоступное свойство
Имя файла, содержащего один или несколько сертификатов для проверки узла. Это значение будет действовать только в том случае, если $verifyPeer установлено.
public string $cainfo = null
$capath общедоступное свойство
Директория, содержащая несколько сертификатов CA. Это значение будет действовать только в том случае, если $verifyPeer установлено.
public string $capath = null
$claimedId общедоступное свойство
Заявленный идентификатор (идентичность).
public string getClaimedId ( )
public void setClaimedId ( $claimedId )
$data общедоступное свойство
Данные, которые должны быть использованы для получения ответа OpenID. Если не задано, будет использоваться комбинация GET и POST.
public array $data = null
$optionalAttributes общедоступное свойство
Список атрибутов, которые могут быть возвращены сервером. Имена атрибутов всегда должны быть указаны в формате AX. Например:
['namePerson/first', 'namePerson/last']
public array $optionalAttributes = []
$requiredAttributes общедоступное свойство
Список атрибутов, которые всегда должны быть возвращены сервером. Имена атрибутов всегда должны быть указаны в формате AX. Например:
['namePerson/friendly', 'contact/email']
public array $requiredAttributes = []
$returnUrl общедоступное свойство
URL возврата авторизации.
public string getReturnUrl ( )
public void setReturnUrl ( $returnUrl )
$trustRoot общедоступное свойство
Корень доверия клиента (область).
public string getTrustRoot ( )
public void setTrustRoot ( $value )
$verifyPeer общедоступное свойство
Необходимо ли проверять сертификат узла.
public boolean $verifyPeer = null
Подробное описание методов
buildAuthUrl() public method
Возвращает URL авторизации. Обычно вы хотите перенаправить пользователя на него.
| public string buildAuthUrl ( $identifierSelect = null ) | ||
|---|---|---|
| $identifierSelect | boolean |
Указывает, нужно ли запросить у OP выбор идентификатора для пользователя в OpenID 2, не влияет на OpenID 1. |
| return | string |
URL авторизации. |
| throws | yii\base\Exception |
при ошибке. |
buildAuthUrlV1() protected method
Строит URL авторизации для версии протокола 1.
| protected string buildAuthUrlV1 ( $serverInfo ) | ||
|---|---|---|
| $serverInfo | array |
Информация об OpenID сервере. |
| return | string |
URL авторизации. |
buildAuthUrlV2() protected method
Строит URL авторизации для версии протокола 2.
| protected string buildAuthUrlV2 ( $serverInfo ) | ||
|---|---|---|
| $serverInfo | array |
Информация об OpenID сервере. |
| return | string |
URL авторизации. |
buildAxParams() protected method
Формирует параметры запроса AX.
| protected array buildAxParams ( ) | ||
|---|---|---|
| return | array |
Параметры AX. |
buildSregParams() protected method
Формирует параметры запроса SREG.
| protected array buildSregParams ( ) | ||
|---|---|---|
| return | array |
Параметры SREG. |
buildUrl() protected method
Объединяет заданные URL в один.
| protected string buildUrl ( $baseUrl, $additionalUrl ) | ||
|---|---|---|
| $baseUrl | string |
Базовый URL. |
| $additionalUrl | string|array |
Дополнительная строка URL или массив информации. |
| return | string |
Составленный URL. |
compareUrl() protected method
Сравнивает 2 URL, учитывая возможные несоответствия порядка параметров GET и несоответствия кодирования URL.
| protected boolean compareUrl ( $expectedUrl, $actualUrl ) | ||
|---|---|---|
| $expectedUrl | string |
Ожидаемый URL. |
| $actualUrl | string |
Фактический URL. |
| return | boolean |
Являются ли URL равными. |
defaultRequestOptions() protected method
Возвращает параметры HTTP-запроса по умолчанию.
| protected array defaultRequestOptions ( ) | ||
|---|---|---|
| return | array |
Параметры HTTP-запроса. |
defaultReturnUrl() protected method
Генерирует значение по умолчанию для $returnUrl.
| protected string defaultReturnUrl ( ) | ||
|---|---|---|
| return | string |
URL возврата по умолчанию для авторизации. |
discover() public method
Выполняет обнаружение Yadis и HTML.
| public array discover ( $url ) | ||
|---|---|---|
| $url | string |
URL идентификатора. |
| return | array |
Информация о поставщике OpenID, доступны следующие ключи:
|
| throws | yii\base\Exception |
при ошибке. |
extractHtmlTagValue() protected method
Сканирует содержимое на наличие тегов / и извлекает информацию из них.
| protected string|boolean extractHtmlTagValue ( $content, $tag, $matchAttributeName, $matchAttributeValue, $valueAttributeName ) | ||
|---|---|---|
| $content | string |
Содержимое HTML для парсинга. |
| $tag | string |
Имя исходного тега. |
| $matchAttributeName | string |
Имя атрибута исходного тега, который должен содержать $matchAttributeValue |
| $matchAttributeValue | string |
Требуемое значение $matchAttributeName |
| $valueAttributeName | string |
Имя атрибута исходного тега, который должен содержать искомое значение. |
| return | string|boolean |
Искомое значение, "false" при ошибке. |
fetchAttributes() public method
Получает атрибуты AX/SREG, предоставленные OP. Должен использоваться только после успешной проверки.
Обратите внимание, что он не гарантирует, что какой-либо из требуемых/необязательных параметров будет присутствовать, или что не будет других атрибутов помимо указанных. Другими словами, OP может предоставить любую информацию, которую он хочет.
Имена SREG будут сопоставлены с именами AX.
См. также http://www.axschema.org/types/.
| public array fetchAttributes ( ) | ||
|---|---|---|
| return | array |
Массив атрибутов с именами схем AX в качестве ключей, например, 'contact/email' |
fetchAxAttributes() protected method
Получает атрибуты AX, предоставленные OP.
| protected array fetchAxAttributes ( ) | ||
|---|---|---|
| return | array |
Массив атрибутов. |
fetchSregAttributes() protected method
Получает атрибуты SREG, предоставленные OP. Имена SREG будут сопоставлены с именами AX.
| protected array fetchSregAttributes ( ) | ||
|---|---|---|
| return | array |
Массив атрибутов с именами схем AX в качестве ключей, например, 'contact/email' |
getClaimedId() public method
| public string getClaimedId ( ) | ||
|---|---|---|
| return | string |
Заявленный идентификатор (идентификатор). |
getReturnUrl() public метод
| public string getReturnUrl ( ) | ||
|---|---|---|
| возвращает | string |
URL возврата аутентификации. |
getTrustRoot() public метод
| public string getTrustRoot ( ) | ||
|---|---|---|
| возвращает | string |
Корень доверия клиента (область). |
hostExists() public метод
Проверяет, существует ли сервер, указанный в url.
| public boolean hostExists ( $url ) | ||
|---|---|---|
| $url | string |
URL для проверки |
| возвращает | boolean |
True, если сервер существует; false в противном случае |
init() public метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| public void init ( ) |
|---|
initUserAttributes() protected метод
Инициализирует атрибуты аутентифицированного пользователя.
| protected array initUserAttributes ( ) | ||
|---|---|---|
| возвращает | array |
Атрибуты пользователя аутентификации. |
sendRequest() protected метод
Отправляет запрос на сервер
| protected array|string sendRequest ( $url, $method = 'GET', $params = [] ) | ||
|---|---|---|
| $url | string |
URL запроса. |
| $method | string |
Метод запроса. |
| $params | array |
Параметры запроса. |
| возвращает | array|string |
Ответ. |
| бросает | yii\base\Exception |
при ошибке. |
setClaimedId() public метод
| public void setClaimedId ( $claimedId ) | ||
|---|---|---|
| $claimedId | string |
Требуемый идентификатор (идентичность). |
setReturnUrl() public метод
| public void setReturnUrl ( $returnUrl ) | ||
|---|---|---|
| $returnUrl | string |
URL возврата аутентификации. |
setTrustRoot() public метод
| public void setTrustRoot ( $value ) | ||
|---|---|---|
| $value | string |
Корень доверия клиента (область). |
validate() public метод
Выполняет проверку OpenID с OP.
| public boolean validate ( $validateRequiredAttributes = true ) | ||
|---|---|---|
| $validateRequiredAttributes | boolean |
Требуется ли проверка обязательных атрибутов. |
| возвращает | boolean |
Успешна ли проверка. |
validateRequiredAttributes() protected метод
Проверяет, присутствуют ли все необходимые атрибуты в ответе сервера.
| protected boolean validateRequiredAttributes ( ) | ||
|---|---|---|
| возвращает | boolean |
Присутствуют ли все необходимые атрибуты. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-authclient-openid.html