iwouldrathercode / cognito
Simple laravel package to work with aws-php-sdk and amazon cognito
Requires
- php: ^8.1
- aws/aws-sdk-php: ^3.235
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.13.0
- teamgantt/juhwit: ^4.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
README
Simple laravel package to work with aws-php-sdk and amazon cognito. Once installed it can generate api routes to work with cognito apis and generate and validate jwt tokens
Installation & Setup
Step 1
You can install the package via composer:
composer require iwouldrathercode/cognito
Step 2
Run the setup command to install dependencies and link the storage folder to public folder
php artisan cognito:setup
Step 3
Run the install command to publish the config files and migrations
php artisan cognito:install
Step 4
Execute the migrations. This will update the users table and since passwords are no longer managed by laravel, this will also delete the password_resets table
php artisan migrate
Step 5
Update the config/auth.php with default guard as api
.. .. 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], .. ..
Step 6
Update the config/auth.php, guards array with config of api
using 'cognito' as driver
.. .. 'guards' => [ .. .. 'api' => [ 'driver' => 'cognito', 'provider' => 'users' ] ], .. ..
Step 7
Ensure the env variables of the cognito UserPool and ClientID are at .env this will affect congig/cognito.php
config file
AWS_COGNITO_USER_POOL_ID= AWS_COGNITO_CLIENT_ID= AWS_DEFAULT_REGION=
Usage
This package will create /api routes to manage authentication
POST -> api/confirm-forgot-password -> confirm-forgot-password › Iwouldrathercode\Cognito\Http\Controllers\SelfServiceController@confirmForgotPassword POST -> api/forgot-password -> forgot-password › Iwouldrathercode\Cognito\Http\Controllers\SelfServiceController@forgotPassword POST -> api/login -> signin › Iwouldrathercode\Cognito\Http\Controllers\LoginController@login POST -> api/register -> signup › Iwouldrathercode\Cognito\Http\Controllers\RegisterController@register POST -> api/verify -> verify › Iwouldrathercode\Cognito\Http\Controllers\EmailVerificationController@verify POST -> api/logout -> signout › Iwouldrathercode\Cognito\Http\Controllers\LoginController@logout
TODO
- Create valid Unit Test cases
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.