Class yii\authclient\clients\Facebook
Inheritance | yii\authclient\clients\Facebook » 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 |
Source Code | https://github.com/yiisoft/yii2-authclient/blob/master/clients/Facebook.php |
Facebook allows authentication via Facebook OAuth.
In order to use Facebook OAuth you must register your application at https://developers.facebook.com/apps. Add an app. In "Settings" -> "Basic" specify "App Domains". There you can obtain ID and Secret values to put into config. In "Products" press "+" and add "Facebook Login". In its settings make sure you enabled "Web OAuth Login" and specify "Valid OAuth Redirect URIs" as "https://example.com/auth?authclient=facebook".
Example application configuration:
'components' => [
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'clientId' => 'facebook_client_id',
'clientSecret' => 'facebook_client_secret',
],
],
]
// ...
]
See also:
Public Properties
Public Methods
Protected Methods
Property Details
List of attribute names, which should be requested from API to initialize user attributes.
Whether to automatically upgrade short-live (2 hours) access token to long-live (60 days) one, after fetching it.
See also \yii\authclient\clients\exchangeToken().
URL endpoint for the client auth code generation.
See also:
Method Details
{@inheritdoc}
public void applyAccessTokenToRequest ( $request, $accessToken ) | ||
$request | ||
$accessToken |
{@inheritdoc}
protected void defaultName ( ) |
{@inheritdoc}
protected void defaultTitle ( ) |
{@inheritdoc}
protected void defaultViewOptions ( ) |
Exchanges short-live (2 hours) access token to long-live (60 days) one.
Note that this method will success for already long-live token, but will not actually prolong it any further. Pay attention, that this method will fail on already expired access token.
See also https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension.
public yii\authclient\OAuthToken exchangeAccessToken ( yii\authclient\OAuthToken $token ) | ||
$token | yii\authclient\OAuthToken | Short-live access token. |
return | yii\authclient\OAuthToken | Long-live access token. |
---|
{@inheritdoc}
public void fetchAccessToken ( $authCode, array $params = [] ) | ||
$authCode | ||
$params |
Fetches access token from client-specific authorization code.
This make sense for the distributed applications, which provides several Auth clients (web and mobile) to avoid triggering Facebook's automated spam systems.
See also:
public yii\authclient\OAuthToken fetchClientAccessToken ( $authCode, array $params = [] ) | ||
$authCode | string | Client auth code. |
$params | array | |
return | yii\authclient\OAuthToken | Long-live client-specific access token. |
---|
Requests the authorization code for the client-specific access token.
This make sense for the distributed applications, which provides several Auth clients (web and mobile) to avoid triggering Facebook's automated spam systems.
See also:
public string fetchClientAuthCode ( yii\authclient\OAuthToken $token = null, $params = [] ) | ||
$token | yii\authclient\OAuthToken|null | Access token, if not set \yii\authclient\clients\accessToken will be used. |
$params | array | Additional request params. |
return | string | Client auth code. |
---|
{@inheritdoc}
protected void initUserAttributes ( ) |