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:
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.*
.
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.
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.
composer test
If you discover any security issues, please email dev@signifly.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.