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-janitorThe 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 testIf you discover any security issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.