Final Class Yiisoft\Yii\AuthClient\AuthAction
| Inheritance | Yiisoft\Yii\AuthClient\AuthAction |
|---|---|
| Implements | Psr\Http\Server\MiddlewareInterface |
AuthAction performs authentication via different auth clients.
It supports {@see \Yiisoft\Yii\AuthClient\OpenId}, {@see \Yiisoft\Yii\AuthClient\OAuth1} and {@see \Yiisoft\Yii\AuthClient\OAuth2} client types.
Usage:
class SiteController extends Controller
{
public function actions()
{
return [
'auth' => [
'class' => \Yiisoft\Yii\AuthClient\AuthAction::class,
'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 Methods
Constants
| Constant | Value | Description | Defined By |
|---|---|---|---|
| AUTH_NAME | 'auth_displayname' | Yiisoft\Yii\AuthClient\AuthAction |
Method Details
| public mixed __construct ( Yiisoft\Yii\AuthClient\Collection $clientCollection, \Yiisoft\Aliases\Aliases $aliases, \Yiisoft\View\WebView $view, \Psr\Http\Message\ResponseFactoryInterface $responseFactory ) | ||
| $clientCollection | Yiisoft\Yii\AuthClient\Collection | |
| $aliases | \Yiisoft\Aliases\Aliases | |
| $view | \Yiisoft\View\WebView | |
| $responseFactory | \Psr\Http\Message\ResponseFactoryInterface | |
public function __construct(
/**
* @var Collection
* It should point to {@see Collection} instance.
*/
private readonly Collection $clientCollection,
private readonly Aliases $aliases,
private readonly WebView $view,
private readonly ResponseFactoryInterface $responseFactory
) {
}
| public \Psr\Http\Message\ResponseInterface process ( \Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Server\RequestHandlerInterface $handler ) | ||
| $request | \Psr\Http\Message\ServerRequestInterface | |
| $handler | \Psr\Http\Server\RequestHandlerInterface | |
#[\Override]
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$clientId = (string)$request->getAttribute($this->clientIdGetParamName);
if (strlen($clientId) > 0) {
if (!$this->clientCollection->hasClient($clientId)) {
return $this->responseFactory->createResponse(Status::NOT_FOUND, "Unknown auth client '{$clientId}'");
}
$client = $this->clientCollection->getClient($clientId);
return $this->auth($client, $request);
}
return $this->responseFactory->createResponse(Status::NOT_FOUND);
}
| public Yiisoft\Yii\AuthClient\AuthAction withCancelUrl ( string $url ) | ||
| $url | string |
Cancel URL. |
public function withCancelUrl(string $url): self
{
$new = clone $this;
$new->cancelUrl = $url;
return $new;
}
| public Yiisoft\Yii\AuthClient\AuthAction withSuccessUrl ( string $url ) | ||
| $url | string |
Successful URL. |
public function withSuccessUrl(string $url): self
{
$new = clone $this;
$new->successUrl = $url;
return $new;
}
Signup or Login in order to comment.