signifly / laravel-janitor
Easily add login proxy to your Laravel API.
Installs: 11 728
Dependents: 0
Suggesters: 0
Security: 0
Stars: 60
Watchers: 4
Forks: 8
Open Issues: 1
Requires
- php: ^7.2|^7.3|^7.4|^8.0
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/auth: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/contracts: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/database: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/http: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/routing: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- laravel/passport: ^7.0|^8.0|^9.0|^10.0
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
- tymon/jwt-auth: ^1.0
Suggests
- laravel/passport: Required when using the passport proxy
- tymon/jwt-auth: Required when using the jwt proxy
README
Easily add login proxy to your Laravel API
The signifly/laravel-janitor
package allows you to easily add a login proxy to your Laravel API.
You can find two articles that walk you through getting started using:
Documentation
To get started you have to either install laravel/passport
or tymon/jwt-auth
. Please refer to their documentation for how to configure those packages.
NOTE: For now the supported versions for tymon/jwt-auth
is 1.0.0-rc.*
.
Installation
You can install the package via composer:
composer require signifly/laravel-janitor
The package will automatically register itself.
You can optionally publish the config file with:
php artisan vendor:publish --tag="janitor-config"
After pulling in the package and (optionally) publishing the config, then add the routes to your routes/api.php
file:
Janitor::routes();
It will by default add routes for the following:
- login by username and password (/login)
- refresh current user access token (/login/refresh)
- log the user out (/logout)
- send password reset email (/password/email)
- reset password (/password/reset)
You can also define a specific set of routes by passing a Closure:
Janitor::routes(function ($router) { // Login and logout routes $router->forAuthentication(); // Password reset routes $router->forPasswordReset(); });
Finally, add JANITOR_DRIVER=driver-name
to your .env file.
The supported drivers are: passport
and jwt
.
NOTE: It does not support a default driver and throws an InvalidArgumentException
if omitted.
Resetting passwords
In order to use the reset password implementation in an API, you have to add a custom reset password notification to your user model.
// App\User.php /** * Send the password reset notification. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPasswordNotification($token)); }
The notification should format a correct link to your client app's reset password url.
Testing
composer test
Security
If you discover any security issues, please email dev@signifly.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.