https://github.com/yiisoft/auth-jwt
https://github.com/yiisoft/auth-jwt
auth authentication hacktoberfest jwt-authentication middleware psr-15 yii3
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/yiisoft/auth-jwt
- Owner: yiisoft
- License: bsd-3-clause
- Created: 2019-11-12T17:15:09.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-20T13:13:52.000Z (10 months ago)
- Last Synced: 2024-10-29T14:35:33.800Z (7 months ago)
- Topics: auth, authentication, hacktoberfest, jwt-authentication, middleware, psr-15, yii3
- Language: PHP
- Homepage: https://www.yiiframework.com/
- Size: 131 KB
- Stars: 34
- Watchers: 19
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
Yii Auth JWT
[](https://packagist.org/packages/yiisoft/auth-jwt)
[](https://packagist.org/packages/yiisoft/auth-jwt)
[](https://github.com/yiisoft/auth-jwt/actions/workflows/build.yml)
[](https://codecov.io/gh/yiisoft/auth-jwt)
[](https://dashboard.stryker-mutator.io/reports/github.com/yiisoft/auth-jwt/master)
[](https://github.com/yiisoft/auth-jwt/actions?query=workflow%3A%22static+analysis%22)
[](https://shepherd.dev/github/yiisoft/auth-jwt)
[](https://shepherd.dev/github/yiisoft/auth-jwt)The package provides [JWT authentication](https://tools.ietf.org/html/rfc7519) method for [Yii Auth](https://github.com/yiisoft/auth/).
## Requirements
- PHP 8.1 or higher.
## Installation
The package could be installed with [Composer](https://getcomposer.org):
```shell
composer require yiisoft/auth-jwt
```## General usage
### Configuring within Yii
1. Set JWT parameters in your `params.php` config file:
```php
'yiisoft/auth-jwt' => [
'algorithms' => [
// your signature algorithms
],
'serializers' => [
// your token serializers
],
'key' => [
'secret' => 'your-secret',
'file' => 'your-certificate-file',
],
],
```2. Setup definitions, required for `\Yiisoft\Auth\Middleware\Authentication` middleware in a config, for example,
in `config/web/auth.php`:```php
/** @var array $params */use Yiisoft\Auth\Jwt\TokenManagerInterface;
use Yiisoft\Auth\Jwt\TokenManager;
use Yiisoft\Auth\AuthenticationMethodInterface;
use Yiisoft\Auth\Jwt\JwtMethod;return [
KeyFactoryInterface::class => [
'class' => FromSecret::class,
'__construct()' => [
$params['yiisoft/auth-jwt']['key']['secret']
],
],
AuthenticationMethodInterface::class => JwtMethod::class,
];
```> Note: Don't forget to declare your implementations of `\Yiisoft\Auth\IdentityInterface` and `\Yiisoft\Auth\IdentityRepositoryInterface`.
3. Use `Yiisoft\Auth\Middleware\Authentication` middleware.
Read more about middlewares in the [middleware guide](https://github.com/yiisoft/docs/blob/master/guide/en/structure/middleware.md).### Configuring independently
You can configure `Authentication` middleware manually:
```php
/** @var \Yiisoft\Auth\IdentityRepositoryInterface $identityRepository */
$identityRepository = getIdentityRepository();$tokenRepository = $container->get(\Yiisoft\Auth\Jwt\TokenRepositoryInterface::class);
$authenticationMethod = new \Yiisoft\Auth\Jwt\JwtMethod($identityRepository, $tokenRepository);
$middleware = new \Yiisoft\Auth\Middleware\Authentication(
$authenticationMethod,
$responseFactory, // PSR-17 ResponseFactoryInterface.
$failureHandler // Optional, \Yiisoft\Auth\Handler\AuthenticationFailureHandler by default.
);
```## Documentation
- [Internals](docs/internals.md)
If you need help or have a question, the [Yii Forum](https://forum.yiiframework.com/c/yii-3-0/63) is a good place for
that. You may also check out other [Yii Community Resources](https://www.yiiframework.com/community).## License
The Yii Auth JWT is free software. It is released under the terms of the BSD License.
Please see [`LICENSE`](./LICENSE.md) for more information.Maintained by [Yii Software](https://www.yiiframework.com/).
## Support the project
[](https://opencollective.com/yiisoft)
## Follow updates
[](https://www.yiiframework.com/)
[](https://twitter.com/yiiframework)
[](https://t.me/yii3en)
[](https://www.facebook.com/groups/yiitalk)
[](https://yiiframework.com/go/slack)