klsoft/yii3-user

The package provides an implementation of the AuthenticationMethodInterface that allows redirection to a protected route after successful authentication

Maintainers

👁 klsoft-web

Package info

github.com/klsoft-web/yii3-user

pkg:composer/klsoft/yii3-user

Statistics

Installs: 63

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-03-09 11:57 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 348c14d004acf77b86b9c51695fead7742226c58

Authenticationuseryii3

This package is auto-updated.

Last update: 2026-06-09 12:34:08 UTC


README

The package provides an implementation of the AuthenticationMethodInterface that allows redirection to a protected route after successful authentication. It also releases the CookieLogin class with the extends method withCookieSecure(), which allows you to configure CookieLogin for an HTTP connection.

Requirement

  • PHP 8.1 or higher.

Installation

composer require klsoft/yii3-user

How to use

First, protect the route:

use Klsoft\Yii3Auth\Middleware\Authentication;
 
Route::post('/create')
 ->middleware(Authentication::class)
 ->action([SiteController::class, 'create'])
 ->name('site/create')

Then, within the login action:

use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Yiisoft\User\CurrentUser;

public function login(ServerRequestInterface $request): ResponseInterface
{
 // ...
 //After a successful authentication $this->currentUser->login($identity)
 $queryParams = $request->getQueryParams();
 if(isset($queryParams['redirect_uri'])) {
 return $this->responseFactory
 ->createResponse(Status::FOUND)
 ->withHeader('Location', $queryParams['redirect_uri']);
 }
}

Example configuration for CookieLogin for an HTTP connection:

use DateInterval;
use Klsoft\Yii3User\Login\Cookie\CookieLogin;

return [
 // ...
 CookieLogin::class => [
 '__construct()' => [
 'duration' => $params['yiisoft/user']['cookieLogin']['duration'] !== null ?
 new DateInterval($params['yiisoft/user']['cookieLogin']['duration']) :
 null,
 ],
 'withCookieSecure()' => [false]
 ],
];