Downloads
Stars
Version
Laravel package for sanctum authenticator. Includes login, register, logout, change password and forgot password.
Getting Started
Prerequisite(s)
Installation
How to Use
Download Postman API
Sanctum Authenticator
Login API
Register API
Logout API
Change Password API
Forgot Password (Send Request) API
Forgot Password (Reset) API
Support
Below are the steps in order to integrate sanctum authenticator API to your Laravel project.
Install Laravel Sanctum via Composer:
composer require laravel/sanctum
Uncomment \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class located in the app/Http/Kernel.php file
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
]
Add the following lines of code to the $routeMiddleware variable in the app/Http/Kernel.php file
'abilities' => \Laravel\Sanctum\Http\Middleware\CheckAbilities::class,
'ability' => \Laravel\Sanctum\Http\Middleware\CheckForAnyAbility::class
Install the package using composer:
composer require jscustom/laravel-sanctum-auth
Export the configuration file:
php artisan vendor:publish --provider="JSCustom\LaravelSanctumAuth\Providers\LaravelSanctumAuthServiceProvider" --tag="config"
Export the migration files:
php artisan vendor:publish --provider="JSCustom\LaravelSanctumAuth\Providers\LaravelSanctumAuthServiceProvider" --tag="migrations"
Do a quick migration:
php artisan migrate --path=/database/migrations/laravel-sanctum-auth
Download the Postman API Collection here.
Features
Models
JSCustom\LaravelSanctumAuth\Models\User
JSCustom\LaravelSanctumAuth\Models\UserProfile
JSCustom\LaravelSanctumAuth\Models\UserRole
JSCustom\LaravelSanctumAuth\Models\PasswordReset
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/login
Form Data
{
"username": "stevengrant",
"email": "[email protected]",
"password": "yourpasswordhere",
}
Method
POST
Headers
{
"Accept": "application/json"
}
Response
{
"status": true,
"message": "Welcome, Steven!",
"payload": {
"user": {
"id": 1,
"username": "stevengrant",
"email": "[email protected]",
"status": 1,
"role_id": 2,
"email_verified_at": null,
"created_at": "2022-06-14T23:27:07.000000Z",
"updated_at": "2022-06-15T14:14:18.000000Z",
"user_profile": {
"id": 1,
"user_id": 1,
"first_name": "Steven",
"last_name": "Grant",
"created_at": "2022-06-14T23:24:42.000000Z",
"updated_at": "2022-06-14T23:24:42.000000Z"
},
"user_role": {
"id": 2,
"role": "Regular User",
"description": "Regular User description here",
"created_at": "2022-06-14T23:24:42.000000Z",
"updated_at": "2022-06-14T23:24:42.000000Z"
}
},
"access_token": "4|SvOITBX0p79AujrZQFse75TJJgONp3kYuid7Q0uP"
}
}
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/register
Form Data
{
"username": "markanthony",
"email": "[email protected]",
"status": 1,
"role_id": 1,
"first_name": "Mark",
"last_name": "Anthony",
"password": "yourpasswordhere"
}
Method
POST
Headers
{
"Accept": "application/json"
}
Response
{
"status": true,
"message": "Register success.",
"payload": {
"user": {
"username": "markanthony",
"email": "[email protected]",
"status": 1,
"role_id": 1,
"updated_at": "2022-06-15T14:33:56.000000Z",
"created_at": "2022-06-15T14:33:56.000000Z",
"id": 8,
"password_unhashed": "yourpasswordhere",
"user_role": {
"id": 1,
"role": "Regular User",
"description": "Regular User description here",
"created_at": "2022-06-14T23:24:42.000000Z",
"updated_at": "2022-06-14T23:24:42.000000Z"
},
"user_profile": {
"id": 4,
"user_id": 8,
"first_name": "Mark",
"last_name": "Anthony",
"created_at": "2022-06-15T14:33:56.000000Z",
"updated_at": "2022-06-15T14:33:56.000000Z"
}
}
}
}
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/logout
Method
POST
Headers
{
"Authorization": "Bearer ...",
"Accept": "application/json"
}
Response
{
"status": true,
"message": "Logout successful."
}
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/change-password
Parameters
{
"current_password": "yourcurrentpassword",
"new_password": "yournewpassword",
"new_password_confirmation": "yournewpassword"
}
Method
POST
Headers
{
"Authorization": "Bearer ...",
"Accept": "application/json"
}
Response
{
"status": true,
"message": "Password updated successfully."
}
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/forgot-password
Parameters
{
"email": "[email protected]"
}
Method
POST
Headers
{
"Accept": "application/json"
}
Response
{
"status": true,
"message": "A forgot password request was sent to your email.",
"payload": {
"reset_password_token": "$2y$10$ELeKX3zUOBMQJSmuFdaAwOf7id7NNuxXwydfwL/.sIUdEZ35gwi7y"
}
}
Controller
\JSCustom\LaravelSanctumAuth\Http\Controllers\Authenticator\AuthenticatorController
URL
{{url}}/api/auth/reset-password
Parameters
{
"new_password": "yournewpassword",
"new_password_confirmation": "yournewpassword",
"reset_password_token": "$2y$10$IqsuRxB5ugH/aui3PCNzPeWBBKilUc3Cgy1K/F48NkgJ/O4kbO0bC"
}
Method
POST
Headers
{
"Accept": "application/json"
}
Response
{
"status": true,
"message": "Password reset successfully."
}
For support, email [email protected].