Класс yii\authclient\OpenIdConnect
| Наследование | yii\authclient\OpenIdConnect » yii\authclient\OAuth2 » yii\authclient\BaseOAuth » yii\authclient\BaseClient » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\authclient\ClientInterface, yii\base\Configurable |
| Доступен с версии | 2.1.3 |
| Исходный код | https://github.com/yiisoft/yii2-authclient/blob/master/OpenIdConnect.php |
OpenIdConnect служит клиентом для потока OpenIdConnect.
Пример конфигурации приложения:
'components' => [
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'google' => [
'class' => 'yii\authclient\OpenIdConnect',
'issuerUrl' => 'https://accounts.google.com',
'clientId' => 'google_client_id',
'clientSecret' => 'google_client_secret',
'name' => 'google',
'title' => 'Google OpenID Connect',
],
],
]
// ...
]
Для проверки JWS этому классу требуется библиотека spomky-labs/jose. Ее можно установить через Composer:
composer require --prefer-dist "spomky-labs/jose:~5.0.6"
Примечание: если вы используете надежного поставщика OpenIdConnect, вы можете отключить $validateJws, сделав установку библиотеки spomky-labs/jose излишней, однако это не рекомендуется, так как нарушает спецификацию протокола.
См. также:
Публичные свойства
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| api() | Выполняет запрос к API OAuth и возвращает данные ответа. | yii\authclient\BaseOAuth |
| applyAccessTokenToRequest() | Применяет токен доступа к экземпляру HTTP-запроса. | yii\authclient\OAuth2 |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| authenticateClient() | Авторизует клиента OAuth напрямую у провайдера без участия третьей стороны (пользователя), используя тип авторизации 'client_credentials'. | yii\authclient\OAuth2 |
| authenticateUser() | Авторизует пользователя напрямую по паре 'имя пользователя/пароль', используя тип авторизации 'password'. | yii\authclient\OAuth2 |
| authenticateUserJwt() | Авторизует пользователя напрямую с использованием JSON Web Token (JWT). | yii\authclient\OAuth2 |
| beforeApiRequestSend() | Обрабатывает событие yii\httpclient\Request::EVENT_BEFORE_SEND. | yii\authclient\BaseOAuth |
| behaviors() | Возвращает список поведений, которые должен демонстрировать этот компонент. | yii\base\Component |
| buildAuthUrl() | Создаёт URL для авторизации пользователя. | yii\authclient\OpenIdConnect |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| createApiRequest() | Создаёт HTTP-запрос для вызова API. | yii\authclient\BaseOAuth |
| createRequest() | Создаёт экземпляр HTTP-запроса. | yii\authclient\BaseClient |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| fetchAccessToken() | Получает токен доступа из кода авторизации. | yii\authclient\OpenIdConnect |
| getAccessToken() | yii\authclient\BaseOAuth | |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все прикрепленные к этому компоненту поведения. | yii\base\Component |
| getCache() | yii\authclient\OpenIdConnect | |
| getConfigParam() | Возвращает значение конкретного параметра конфигурации. | yii\authclient\OpenIdConnect |
| getConfigParams() | yii\authclient\OpenIdConnect | |
| getHttpClient() | Возвращает HTTP-клиент. | yii\authclient\BaseClient |
| getId() | yii\authclient\ClientInterface | |
| getName() | yii\authclient\ClientInterface | |
| getNormalizeUserAttributeMap() | yii\authclient\BaseClient | |
| getRequestOptions() | yii\authclient\BaseClient | |
| getReturnUrl() | yii\authclient\BaseOAuth | |
| getSignatureMethod() | yii\authclient\BaseOAuth | |
| getStateStorage() | yii\authclient\BaseClient | |
| getTitle() | yii\authclient\ClientInterface | |
| getUserAttributes() | yii\authclient\ClientInterface | |
| getValidateAuthNonce() | yii\authclient\OpenIdConnect | |
| getViewOptions() | yii\authclient\ClientInterface | |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчики событий для заданного события. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для данного компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\base\Object |
| off() | Отсоединяет существующий обработчик событий от данного компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| refreshAccessToken() | Получение нового токена авторизации для замены истекшего. | yii\authclient\OpenIdConnect |
| setAccessToken() | Устанавливает токен доступа для использования. | yii\authclient\BaseOAuth |
| setCache() | Настройка компонента для кэширования. | yii\authclient\OpenIdConnect |
| setHttpClient() | Устанавливает HTTP-клиент для использования. | yii\authclient\BaseOAuth |
| setId() | yii\authclient\ClientInterface | |
| setName() | yii\authclient\ClientInterface | |
| setNormalizeUserAttributeMap() | yii\authclient\BaseClient | |
| setRequestOptions() | yii\authclient\BaseClient | |
| setReturnUrl() | yii\authclient\BaseOAuth | |
| setSignatureMethod() | Установка метода подписи. | yii\authclient\BaseOAuth |
| setStateStorage() | yii\authclient\BaseClient | |
| setTitle() | yii\authclient\ClientInterface | |
| setUserAttributes() | yii\authclient\BaseClient | |
| setValidateAuthNonce() | yii\authclient\OpenIdConnect | |
| setViewOptions() | yii\authclient\BaseClient | |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| applyClientCredentialsToRequest() | Применяет учетные данные клиента (например, $clientId и $clientSecret) к экземпляру HTTP-запроса. | yii\authclient\OpenIdConnect |
| composeUrl() | Формирует URL из базового URL и параметров GET. | yii\authclient\BaseOAuth |
| createHttpClient() | Создает экземпляр HTTP-клиента из ссылки или конфигурации. | yii\authclient\BaseOAuth |
| createSignatureMethod() | Создает экземпляр метода подписи из его конфигурации. | yii\authclient\BaseOAuth |
| createToken() | Создает токен из его конфигурации. | yii\authclient\OpenIdConnect |
| defaultName() | Генерирует имя сервиса. | yii\authclient\BaseClient |
| defaultNormalizeUserAttributeMap() | Возвращает значение по умолчанию $normalizeUserAttributeMap. | yii\authclient\BaseClient |
| defaultRequestOptions() | Возвращает значения параметров HTTP-запроса по умолчанию. | yii\authclient\BaseOAuth |
| defaultReturnUrl() | Формирует значение по умолчанию для $returnUrl. | yii\authclient\OpenIdConnect |
| defaultTitle() | Генерирует заголовок сервиса. | yii\authclient\BaseClient |
| defaultViewOptions() | Возвращает значение по умолчанию для $viewOptions. | yii\authclient\BaseClient |
| discoverConfig() | Ищет параметры конфигурации поставщика OpenID. | yii\authclient\OpenIdConnect |
| generateAuthNonce() | Генерирует значение nonce авторизации. | yii\authclient\OpenIdConnect |
| generateAuthState() | Генерирует значение состояния авторизации. | yii\authclient\OAuth2 |
| getState() | Возвращает значение состояния. | yii\authclient\BaseClient |
| getStateKeyPrefix() | Возвращает префикс ключа сессии, используемый для хранения внутренних состояний. | yii\authclient\BaseClient |
| initUserAttributes() | Инициализирует атрибуты авторизованного пользователя. | yii\authclient\OpenIdConnect |
| loadJws() | Расшифровывает/валидирует JWS, возвращая связанные данные. | yii\authclient\OpenIdConnect |
| normalizeUserAttributes() | Нормализует заданные атрибуты пользователя в соответствии с $normalizeUserAttributeMap. | yii\authclient\BaseClient |
| removeState() | Удаляет значение состояния. | yii\authclient\BaseClient |
| restoreAccessToken() | Восстанавливает токен доступа. | yii\authclient\BaseOAuth |
| saveAccessToken() | Сохраняет токен в качестве состояния. | yii\authclient\BaseOAuth |
| sendRequest() | Отправляет заданный HTTP-запрос, возвращая данные ответа. | yii\authclient\BaseOAuth |
| setState() | Устанавливает состояние. | yii\authclient\BaseClient |
Подробное описание свойств
$allowedJwsAlgorithms общественное свойство
JWS алгоритмы, которые разрешено использовать. Они используются библиотекой spomky-labs/jose для валидации/расшифровки JWS. Убедитесь, что spomky-labs/jose поддерживает конкретный алгоритм перед добавлением его сюда.
public array $allowedJwsAlgorithms = ['HS256', 'HS384', 'HS512', 'ES256', 'ES384', 'ES512', 'RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512']
$cache общественное свойство
Объект кэширования, null - если не включен.
public yii\caching\Cache|null getCache ( )
public void setCache ( $cache )
$configParams общественное только для чтения свойство
Параметры конфигурации поставщика OpenID.
public array getConfigParams ( )
$configParamsCacheKeyPrefix общественное свойство
Префикс для ключа, используемого для хранения данных $configParams в кэше. Фактический ключ кэша будет сформирован путем добавления значения $id к нему.
См. также $cache.
public string $configParamsCacheKeyPrefix = 'config-params-'
$issuerUrl общественное свойство
Базовый URL OpenID-эмитента (поставщика), например, https://example.com.
public string $issuerUrl = null
$scope общественное свойство
Область действия запроса аутентификации.
public string $scope = 'openid'
$validateAuthNonce общее свойство
Использовать и проверять параметр аутентификации 'nonce' в процессе аутентификации.
public boolean getValidateAuthNonce ( )
public void setValidateAuthNonce ( $validateAuthNonce )
$validateJws общее свойство
Проверять/расшифровывать JWS, полученный с маркером аутентификации. Примечание: эта функциональность требует spomky-labs/jose пакета composer для установки. Вы можете отключить этот параметр в случае использования доверенного поставщика OpenIDConnect, однако это нарушает правила протокола, поэтому вы делаете это на свой страх и риск.
public boolean $validateJws = true
Подробное описание методов
applyClientCredentialsToRequest() защищённый метод
Применяет клиентские учетные данные (например, $clientId и $clientSecret) к экземпляру HTTP-запроса.
Этот метод необходимо вызывать перед отправкой любого HTTP-запроса, требующего клиентских учетных данных.
| защищённый void applyClientCredentialsToRequest ( $request ) | ||
|---|---|---|
| $request | yii\httpclient\Request |
Экземпляр HTTP-запроса. |
buildAuthUrl() публичный метод
Создаёт URL авторизации пользователя.
| публичный строка buildAuthUrl ( массив $params = [] ) | ||
|---|---|---|
| $params | массив |
Дополнительные параметры GET для авторизации. |
| return | строка |
URL авторизации. |
createToken() защищённый метод
Создаёт токен из его конфигурации.
| защищённый yii\authclient\OAuthToken createToken ( массив $tokenConfig = [] ) | ||
|---|---|---|
| $tokenConfig | массив |
Конфигурация токена. |
| return | yii\authclient\OAuthToken |
Экземпляр токена. |
defaultReturnUrl() защищённый метод
Создаёт значение по умолчанию для $returnUrl.
| защищённый строка defaultReturnUrl ( ) | ||
|---|---|---|
| return | строка |
URL возврата. |
discoverConfig() защищённый метод
Ищет параметры конфигурации поставщика OpenID.
| защищённый массив discoverConfig ( ) | ||
|---|---|---|
| return | массив |
Параметры конфигурации поставщика OpenID. |
| throws | yii\authclient\InvalidResponseException |
при ошибке. |
fetchAccessToken() публичный метод
Получает токен доступа по коду авторизации.
| публичный yii\authclient\OAuthToken fetchAccessToken ( $authCode, массив $params = [] ) | ||
|---|---|---|
| $authCode | строка |
Код авторизации, обычно из $_GET['code']. |
| $params | массив |
Дополнительные параметры запроса. |
| return | yii\authclient\OAuthToken |
Токен доступа. |
| throws | yii\web\HttpException |
при некорректном состоянии авторизации, если \yii\authclient\enableStateValidation включено. |
generateAuthNonce() защищённый метод
Генерирует значение nonce для авторизации.
| защищённый строка generateAuthNonce ( ) | ||
|---|---|---|
| return | строка |
Значение nonce для авторизации. |
getCache() публичный метод
| публичный yii\caching\Cache|null getCache ( ) | ||
|---|---|---|
| return | yii\caching\Cache|null |
Объект кэша, |
getConfigParam() публичный метод
Возвращает значение определённого параметра конфигурации.
| публичный mixed getConfigParam ( $name ) | ||
|---|---|---|
| $name | строка |
Имя параметра конфигурации. |
| return | mixed |
Значение параметра конфигурации. |
getConfigParams() публичный метод
| публичный массив getConfigParams ( ) | ||
|---|---|---|
| return | массив |
Параметры конфигурации поставщика OpenID. |
getValidateAuthNonce() публичный метод
| публичный булево getValidateAuthNonce ( ) | ||
|---|---|---|
| return | булево |
Использовать и проверять параметр авторизации 'nonce' в процессе аутентификации. |
initUserAttributes() защищённый метод
Инициализирует атрибуты аутентифицированного пользователя.
| защищённый массив initUserAttributes ( ) | ||
|---|---|---|
| return | массив |
Атрибуты пользователя для авторизации. |
loadJws() защищённый метод
Дешифрует/проверяет JWS, возвращая связанные данные.
| защищённый массив loadJws ( $jws ) | ||
|---|---|---|
| $jws | строка |
Исходный JWS ввод. |
| return | массив |
Подлежащие данные JWS. |
| throws | yii\web\HttpException |
при некорректной подписи JWS. |
refreshAccessToken() публичный метод
Получает новый токен авторизации для замены истекшего.
| публичный yii\authclient\OAuthToken refreshAccessToken ( yii\authclient\OAuthToken $token ) | ||
|---|---|---|
| $token | yii\authclient\OAuthToken |
Истекший токен авторизации. |
| return | yii\authclient\OAuthToken |
Новый токен авторизации. |
setCache() публичный метод
Настраивает компонент для использования в кэшировании.
Это может быть одно из следующего:
- идентификатор компонента приложения (например,
cache) - массив конфигурации
- объект yii\caching\Cache
Если передано null, это означает, что кэширование не включено.
| публичный void setCache ( $cache ) | ||
|---|---|---|
| $cache | yii\caching\Cache|массив|строка|null |
Объект кэша или идентификатор компонента приложения для кэша. |
setValidateAuthNonce() публичный метод
| публичный void setValidateAuthNonce ( $validateAuthNonce ) | ||
|---|---|---|
| $validateAuthNonce | булево |
Использовать и проверять параметр авторизации 'nonce' в процессе аутентификации. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-authclient-openidconnect.html