# Class yii\authclient\clients\GoogleHybrid

Inheritance | yii\authclient\clients\GoogleHybrid » yii\authclient\clients\Google » yii\authclient\OAuth2 » yii\authclient\BaseOAuth » yii\authclient\BaseClient » yii\base\Component » yii\base\BaseObject
Implements | yii\authclient\ClientInterface, yii\base\Configurable
Available since version | 2.0.4
Source Code | https://github.com/yiisoft/yii2-authclient/blob/master/clients/GoogleHybrid.php

GoogleHybrid is an enhanced version of the yii\authclient\clients\Google, which uses Google+ hybrid sign-in flow, which relies on embedded JavaScript code to generate a sign-in button and handle user authentication dialog.

Example application configuration:

    'components' => [
        'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'google' => [
                    'class' => 'yii\authclient\clients\GoogleHybrid',
                    'clientId' => 'google_client_id',
                    'clientSecret' => 'google_client_secret',
                ],
            ],
        ]
        // ...
    ]

Note: Google+ hybrid relies heavily on client-side JavaScript during authorization process, do not attempt to obtain authorization code using buildAuthUrl() unless you absolutely sure, what you are doing.

JavaScript button itself generated by yii\authclient\widgets\GooglePlusButton widget. If you are using yii\authclient\widgets\AuthChoice it will appear automatically. Otherwise you need to add it into your page manually. You may customize its appearance using 'widget' key at $viewOptions:

    'google' => [
        // ...
        'viewOptions' => [
            'widget' => [
                'class' => 'yii\authclient\widgets\GooglePlusButton',
                'buttonHtmlOptions' => [
                    'data-approvalprompt' => 'force'
                ],
            ],
        ],
    ],

See also:

- yii\authclient\clients\Google
- yii\authclient\widgets\GooglePlusButton
- https://developers.google.com/ /web/signin

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$accessToken | yii\authclient\OAuthToken | Auth token instance. Note that the type of this property differs in getter and setter. See getAccessToken() and setAccessToken() for details. | yii\authclient\BaseOAuth
$apiBaseUrl | string | API base URL. | yii\authclient\clients\Google
$authUrl | string | Authorize URL. | yii\authclient\clients\Google
$autoRefreshAccessToken | boolean | Whether to automatically perform 'refresh access token' request on expired access token. | yii\authclient\BaseOAuth
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component
$clientId | string | OAuth client ID. | yii\authclient\OAuth2
$clientSecret | string | OAuth client secret. | yii\authclient\OAuth2
$httpClient | yii\httpclient\Client | Internal HTTP client. Note that the type of this property differs in getter and setter. See getHttpClient() and setHttpClient() for details. | yii\authclient\BaseClient
$id | string | Service id. | yii\authclient\BaseClient
$name | string | Service name. | yii\authclient\BaseClient
$normalizeUserAttributeMap | array | Normalize user attribute map. | yii\authclient\BaseClient
$parametersToKeepInReturnUrl | array | List of the parameters to keep in default return url. | yii\authclient\BaseOAuth
$requestOptions | array | HTTP request options. This property is read-only. | yii\authclient\BaseClient
$returnUrl | string | Return URL. | yii\authclient\BaseOAuth
$scope | string | Auth request scope. | yii\authclient\BaseOAuth
$signatureMethod | yii\authclient\signature\BaseMethod | Signature method instance. Note that the type of this property differs in getter and setter. See getSignatureMethod() and setSignatureMethod() for details. | yii\authclient\BaseOAuth
$stateStorage | yii\authclient\StateStorageInterface | Stage storage. Note that the type of this property differs in getter and setter. See getStateStorage() and setStateStorage() for details. | yii\authclient\BaseClient
$title | string | Service title. | yii\authclient\BaseClient
$tokenUrl | string | Token request URL endpoint. | yii\authclient\clients\Google
$userAttributes | array | List of user attributes. | yii\authclient\BaseClient
$validateAuthState | boolean | Whether to use and validate auth 'state' parameter in authentication flow. | yii\authclient\clients\GoogleHybrid
$version | string | Protocol version. | yii\authclient\BaseOAuth
$viewOptions | array | View options in format: optionName => optionValue. | yii\authclient\BaseClient

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__call() | Calls the named method which is not a class method. | yii\base\Component
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component
__construct() | Constructor. | yii\base\BaseObject
__get() | Returns the value of a component property. | yii\base\Component
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component
__set() | Sets the value of a component property. | yii\base\Component
__unset() | Sets a component property to be null. | yii\base\Component
api() | Performs request to the OAuth API returning response data. | yii\authclient\BaseOAuth
applyAccessTokenToRequest() | Applies access token to the HTTP request instance. | yii\authclient\BaseOAuth
attachBehavior() | Attaches a behavior to this component. | yii\base\Component
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component
authenticateClient() | Authenticate OAuth client directly at the provider without third party (user) involved, using 'client_credentials' grant type. | yii\authclient\OAuth2
authenticateUser() | Authenticates user directly by 'username/password' pair, using 'password' grant type. | yii\authclient\OAuth2
authenticateUserJwt() | Authenticates user directly using JSON Web Token (JWT). | yii\authclient\OAuth2
beforeApiRequestSend() | Handles yii\httpclient\Request::EVENT_BEFORE_SEND event. | yii\authclient\BaseOAuth
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component
buildAuthUrl() | Composes user authorization URL. | yii\authclient\OAuth2
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component
className() | Returns the fully qualified name of this class. | yii\base\BaseObject
createApiRequest() | Creates an HTTP request for the API call. | yii\authclient\BaseOAuth
createRequest() | Creates HTTP request instance. | yii\authclient\BaseClient
detachBehavior() | Detaches a behavior from the component. | yii\base\Component
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component
fetchAccessToken() | Fetches access token from authorization code. | yii\authclient\OAuth2
getAccessToken() |  | yii\authclient\BaseOAuth
getBehavior() | Returns the named behavior object. | yii\base\Component
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component
getHttpClient() | Returns HTTP client. | 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
getViewOptions() |  | yii\authclient\ClientInterface
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component
init() | Initializes the object. | yii\authclient\clients\Google
off() | Detaches an existing event handler from this component. | yii\base\Component
on() | Attaches an event handler to an event. | yii\base\Component
refreshAccessToken() | Gets new auth token to replace expired one. | yii\authclient\BaseOAuth
setAccessToken() | Sets access token to be used. | yii\authclient\BaseOAuth
setHttpClient() | Sets HTTP client to be used. | yii\authclient\BaseOAuth
setId() |  | yii\authclient\ClientInterface
setName() |  | yii\authclient\ClientInterface
setNormalizeUserAttributeMap() |  | yii\authclient\BaseClient
setRequestOptions() |  | yii\authclient\BaseClient
setReturnUrl() |  | yii\authclient\BaseOAuth
setSignatureMethod() | Set signature method to be used. | yii\authclient\BaseOAuth
setStateStorage() |  | yii\authclient\BaseClient
setTitle() |  | yii\authclient\ClientInterface
setUserAttributes() |  | yii\authclient\BaseClient
setViewOptions() |  | yii\authclient\BaseClient
trigger() | Triggers an event. | yii\base\Component

## Protected Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
applyClientCredentialsToRequest() | Applies client credentials (e.g. $clientId and $clientSecret) to the HTTP request instance. | yii\authclient\OAuth2
composeUrl() | Composes URL from base URL and GET params. | yii\authclient\BaseOAuth
createHttpClient() | Creates HTTP client instance from reference or configuration. | yii\authclient\BaseOAuth
createSignatureMethod() | Creates signature method instance from its configuration. | yii\authclient\BaseOAuth
createToken() | Creates token from its configuration. | yii\authclient\BaseOAuth
defaultName() | Generates service name. | yii\authclient\clients\Google
defaultNormalizeUserAttributeMap() | Returns the default $normalizeUserAttributeMap value. | yii\authclient\BaseClient
defaultRequestOptions() | Returns default HTTP request options. | yii\authclient\BaseOAuth
defaultReturnUrl() | Composes default $returnUrl value. | yii\authclient\clients\GoogleHybrid
defaultTitle() | Generates service title. | yii\authclient\clients\Google
defaultViewOptions() | Returns the default $viewOptions value. | yii\authclient\clients\GoogleHybrid
generateAuthState() | Generates the auth state value. | yii\authclient\OAuth2
getState() | Returns persistent state value. | yii\authclient\BaseClient
getStateKeyPrefix() | Returns session key prefix, which is used to store internal states. | yii\authclient\BaseClient
initUserAttributes() | Initializes authenticated user attributes. | yii\authclient\clients\Google
normalizeUserAttributes() | Normalize given user attributes according to $normalizeUserAttributeMap. | yii\authclient\BaseClient
removeState() | Removes persistent state value. | yii\authclient\BaseClient
restoreAccessToken() | Restores access token. | yii\authclient\BaseOAuth
saveAccessToken() | Saves token as persistent state. | yii\authclient\BaseOAuth
sendRequest() | Sends the given HTTP request, returning response data. | yii\authclient\BaseOAuth
setState() | Sets persistent state. | yii\authclient\BaseClient

## Property Details

$validateAuthState public property (available since version 2.1)

Whether to use and validate auth 'state' parameter in authentication flow. If enabled - the opaque value will be generated and applied to auth URL to maintain state between the request and callback. The authorization server includes this value, when redirecting the user-agent back to the client. The option is used for preventing cross-site request forgery.

public boolean $validateAuthState = false

## Method Details

defaultReturnUrl() protected method

Composes default $returnUrl value.

protected string defaultReturnUrl ( )
return | string | Return URL.

defaultViewOptions() protected method

Returns the default $viewOptions value.

Particular client may override this method in order to provide specific default view options.

protected array defaultViewOptions ( )
return | array | List of default $viewOptions