Class yii\authclient\AuthAction
Inheritance | yii\authclient\AuthAction » yii\base\Action » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-authclient/blob/master/AuthAction.php |
AuthAction performs authentication via different auth clients.
It supports yii\authclient\OpenId, yii\authclient\OAuth1 and yii\authclient\OAuth2 client types.
Usage:
class SiteController extends Controller
{
public function actions()
{
return [
'auth' => [
'class' => 'yii\authclient\AuthAction',
'successCallback' => [$this, 'successCallback'],
],
]
}
public function successCallback($client)
{
$attributes = $client->getUserAttributes();
// user login or signup comes here
}
}
Usually authentication via external services is performed inside the popup window. This action handles the redirection and closing of popup window correctly.
See also:
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$cancelCallback | callable | PHP callback, which should be triggered in case of authentication cancelation. | yii\authclient\AuthAction |
$clientCollection | string | Name of the auth client collection application component. | yii\authclient\AuthAction |
$clientIdGetParamName | string | Name of the GET param, which is used to passed auth client id to this action. | yii\authclient\AuthAction |
$controller | yii\base\Controller|yii\web\Controller|yii\console\Controller | The controller that owns this action | yii\base\Action |
$id | string | ID of the action | yii\base\Action |
$redirectView | string | Name or alias of the view file, which should be rendered in order to perform redirection. | yii\authclient\AuthAction |
$successCallback | callable | PHP callback, which should be triggered in case of successful authentication. | yii\authclient\AuthAction |
$user | yii\web\User|array|string | The User object or the application component ID of the user component. | yii\authclient\AuthAction |
Public 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\Action |
__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 |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
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 |
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 |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getCancelUrl() | yii\authclient\AuthAction | |
getSuccessUrl() | yii\authclient\AuthAction | |
getUniqueId() | Returns the unique ID of this action among the whole application. | yii\base\Action |
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\AuthAction |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
redirect() | Redirect to the given URL or simply close the popup window. | yii\authclient\AuthAction |
redirectCancel() | Redirect to the \yii\authclient\cancelUrl or simply close the popup window. | yii\authclient\AuthAction |
redirectSuccess() | Redirect to the URL. If URL is null, \yii\authclient\successUrl will be used. | yii\authclient\AuthAction |
run() | Runs the action. | yii\authclient\AuthAction |
runWithParams() | Runs this action with the specified parameters. | yii\base\Action |
setCancelUrl() | yii\authclient\AuthAction | |
setSuccessUrl() | yii\authclient\AuthAction | |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
afterRun() | This method is called right after run() is executed. |
yii\base\Action |
auth() | Perform authentication for the given client. | yii\authclient\AuthAction |
authCancel() | This method is invoked in case of authentication cancelation. | yii\authclient\AuthAction |
authOAuth1() | Performs OAuth1 auth flow. | yii\authclient\AuthAction |
authOAuth2() | Performs OAuth2 auth flow. | yii\authclient\AuthAction |
authOpenId() | Performs OpenID auth flow. | yii\authclient\AuthAction |
authSuccess() | This method is invoked in case of successful authentication via auth client. | yii\authclient\AuthAction |
beforeRun() | This method is called right before run() is executed. |
yii\base\Action |
defaultCancelUrl() | Creates default \yii\authclient\cancelUrl value. | yii\authclient\AuthAction |
defaultSuccessUrl() | Creates default \yii\authclient\successUrl value. | yii\authclient\AuthAction |
Property Details
PHP callback, which should be triggered in case of authentication cancelation. This callback should accept yii\authclient\ClientInterface instance as an argument. For example:
public function onAuthCancel(ClientInterface $client)
{
// set flash, logging, etc.
}
If this callback returns yii\web\Response instance, it will be used as action response, otherwise redirection to \yii\authclient\cancelUrl will be performed.
Name of the auth client collection application component. It should point to yii\authclient\Collection instance.
Name of the GET param, which is used to passed auth client id to this action. Note: watch for the naming, make sure you do not choose name used in some auth protocol.
Name or alias of the view file, which should be rendered in order to perform redirection. If not set - default one will be used.
PHP callback, which should be triggered in case of successful authentication. This callback should accept yii\authclient\ClientInterface instance as an argument. For example:
public function onAuthSuccess(ClientInterface $client)
{
$attributes = $client->getUserAttributes();
// user login or signup comes here
}
If this callback returns yii\web\Response instance, it will be used as action response, otherwise redirection to \yii\authclient\successUrl will be performed.
The User object or the application component ID of the user component.
Method Details
Perform authentication for the given client.
protected yii\web\Response auth ( $client, $authUrlParams = [] ) | ||
$client | mixed | Auth client instance. |
$authUrlParams | array | Additional auth GET params. |
return | yii\web\Response | Response instance. |
---|---|---|
throws | yii\base\NotSupportedException | on invalid client. |
This method is invoked in case of authentication cancelation.
protected yii\web\Response authCancel ( $client ) | ||
$client | yii\authclient\ClientInterface | Auth client instance. |
return | yii\web\Response | Response instance. |
---|
Performs OAuth1 auth flow.
protected yii\web\Response authOAuth1 ( $client, $authUrlParams = [] ) | ||
$client | yii\authclient\OAuth1 | Auth client instance. |
$authUrlParams | array | Additional auth GET params. |
return | yii\web\Response | Action response. |
---|
Performs OAuth2 auth flow.
protected yii\web\Response authOAuth2 ( $client, $authUrlParams = [] ) | ||
$client | yii\authclient\OAuth2 | Auth client instance. |
$authUrlParams | array | Additional auth GET params. |
return | yii\web\Response | Action response. |
---|---|---|
throws | yii\base\Exception | on failure. |
Performs OpenID auth flow.
protected yii\web\Response authOpenId ( $client ) | ||
$client | yii\authclient\OpenId | Auth client instance. |
return | yii\web\Response | Action response. |
---|---|---|
throws | yii\base\Exception | on failure. |
throws | yii\web\HttpException | on failure. |
This method is invoked in case of successful authentication via auth client.
protected yii\web\Response authSuccess ( $client ) | ||
$client | yii\authclient\ClientInterface | Auth client instance. |
return | yii\web\Response | Response instance. |
---|---|---|
throws | yii\base\InvalidConfigException | on invalid success callback. |
Creates default \yii\authclient\cancelUrl value.
protected string defaultCancelUrl ( ) | ||
return | string | Cancel URL value. |
---|
Creates default \yii\authclient\successUrl value.
protected string defaultSuccessUrl ( ) | ||
return | string | Success URL value. |
---|
public string getCancelUrl ( ) | ||
return | string | Cancel URL. |
---|
public string getSuccessUrl ( ) | ||
return | string | Successful URL. |
---|
Initializes the object.
This method is invoked at the end of the constructor after the object is initialized with the given configuration.
public void init ( ) |
Redirect to the given URL or simply close the popup window.
public yii\web\Response redirect ( $url, $enforceRedirect = true ) | ||
$url | mixed | URL to redirect, could be a string or array config to generate a valid URL. |
$enforceRedirect | boolean | Indicates if redirect should be performed even in case of popup window. |
return | yii\web\Response | Response instance. |
---|
Redirect to the \yii\authclient\cancelUrl or simply close the popup window.
public yii\web\Response redirectCancel ( $url = null ) | ||
$url | string | URL to redirect. |
return | yii\web\Response | Response instance. |
---|
Redirect to the URL. If URL is null, \yii\authclient\successUrl will be used.
public yii\web\Response redirectSuccess ( $url = null ) | ||
$url | string | URL to redirect. |
return | yii\web\Response | Response instance. |
---|
Runs the action.
public void run ( ) |
public void setCancelUrl ( $url ) | ||
$url | string | Cancel URL. |
public void setSuccessUrl ( $url ) | ||
$url | string | Successful URL. |