Skip to content

Simple laravel package to work with aws-php-sdk and amazon cognito

License

Notifications You must be signed in to change notification settings

iwouldrathercode/cognito

Repository files navigation

iwouldrathercode/cognito

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.