diplodocker / auth-service
Laravel JWT auth service package
Fund package maintenance!
Patreon
Installs: 1 497
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.1.3
- tymon/jwt-auth: dev-develop
This package is auto-updated.
Last update: 2025-03-11 19:01:05 UTC
README
About
Laravel JWT auth service package – this is just a wrapper over a tymon/jwt-auth
package that includes services, controllers and a factory.
Contains:
- Controllers
- Routes
- Services
- Requests
- Factory
Install
composer require diplodocker/auth-service
Configure User
model
- Implement
Diplodocker\Services\Contracts\AuthorizationInterface
- Use
Diplodocker\Services\Concerns\CanUseAuthorizationTokens
(or implement methods from trait) - Add
TABLE_NAME
andATTR_EMAIL
constants toUser
model
<?php declare(strict_types=1); namespace App\Models; use Diplodocker\Services\Concerns\CanUseAuthorizationTokens; use Diplodocker\Services\Contracts\AuthorizationInterface; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements AuthorizationInterface { // ... use CanUseAuthorizationTokens; public const TABLE_NAME = 'users'; public const ATTR_EMAIL = 'email'; // ... }
Bind interface
- Open (or create)
AppServiceProvider
orBindServiceProvider
- Bind interface to the model in
boot
method
Example:
<?php declare(strict_types=1); namespace App\Providers; use App\Models\User; use Illuminate\Support\ServiceProvider; use Diplodocker\Services\Contracts\AuthorizationInterface; class AppServiceProvider extends ServiceProvider { public function boot() { $this->app->bind( AuthorizationInterface::class, User::class ); } }
Configure auth
config
'defaults' => [
+ 'guard' => 'api',
],
'guards' => [
'api' => [
+ 'driver' => 'jwt',
...
],
],
Run command
php artisan jwt:secret
Routes
Method | URI | Route | Required params |
---|---|---|---|
GET |
auth/check |
auth-service.check |
none |
POST |
auth/login |
auth-service.login |
email , password |
GET |
auth/logout |
auth-service.logout |
none |
POST |
auth/register |
auth-service.register |
email , password |