Package Data | |
---|---|
Maintainer Username: | prabink |
Maintainer Contact: | anam.hossain@carsguide.com.au (Anam Hossain) |
Package Create Date: | 2024-01-22 |
Package Last Update: | 2024-01-23 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2025-01-03 03:03:31 |
Package Statistics | |
---|---|
Total Downloads: | 21 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 0 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Manages Lumen and Laravel Auth0 integration in microservices using PHP 8.0 version.
Via composer
$ composer require carsguide/auth-manager
AUTH0_AUDIENCE=
AUTH0_OAUTH_URL=
AUTH0_DOMAIN=
AUTH0_JWT_CLIENTID=
AUTH0_JWT_CLIENTSECRET=
AUTH0_ALGORITHM=
| Value | What it is | | ------------- |-------------| | AUTH0_AUDIENCE | Auth0 audience/identifier of the API micro service verifying the token | | AUTH0_OAUTH_URL | Auth0 URL to query to get a token from (the tenant) | | AUTH0_DOMAIN | Auth0 domain of tenant (used during token verifcation) | | AUTH0_JWT_CLIENTID | Auth0 client ID of the micro service getting a token | | AUTH0_JWT_CLIENTSECRET | Auth0 client secret of the micro service getting a token | | AUTH0_ALGORITHM | Algorithm method, advise RS256 (default) |
Add the following snippet to the bootstrap/app.php
file under the register service providers section:
$app->register(Carsguide\Auth\Providers\AuthManagerServiceProvider::class);
Add the following snippet to the config/app.php
file under the register service providers section:
Carsguide\Auth\Providers\AuthManagerServiceProvider::class,
To use token and scope validation register the middleware via routeMiddleware()
$app->routeMiddleware([
'auth' => Carsguide\Auth\Middlewares\Auth0Middleware::class,
]);
protected $routeMiddleware = [
'auth' => \Carsguide\Auth\Middlewares\Auth0Middleware::class,
];
use Carsguide\Auth\AuthManager;
use GuzzleHttp\Client;
$auth = new AuthManager(new Client());
$auth = $auth->setAudience('foobar');
$auth->getToken();
Using AuthManager
Facade:
use Carsguide\Auth\Facades\AuthManager;
AuthManager::setAudience('foobar')->getToken();
Cache JWT token:
AuthManager::setAudience('foobar')
// By default, JWT will cache for 50 minutes
// If you need to override the default length,
// pass minutes in cache(120) method.
->cache() // or ->cache($minutes = 120)
->getToken();
Each token is validated via middleware. You must call the middleware in routes or the controller to validate access. The middleware requires a scope be defined, nothing can be global.
$this->middleware('auth:listings:read');
Using routes file
$router->get('admin/profile', ['middleware' => 'auth:listings:read', function () {
//
}]);