lukapeharda/laravel-password-setup

Send password setup notification to users created through API

1.0.1 2019-04-04 07:04 UTC

This package is auto-updated.

Last update: 2024-04-17 19:45:25 UTC


README

Package for Laravel PHP framework which enables sending of email notifications to users (created through API) to setup password.

Consider this scenario: you are creating users through your API endpoint and after receiving their email and creating a user in the DB you want them to create their own password (because generating one for them and sending it through email is bad).

This package allows you to trigger an event which will be listened to by the built-in listener and send an email notification (using Laravel Notification) with a generated URL link with a password setup token. Token generated is the same as the one generated by the Laravel for resetting passwords. Views are provided as well (using Bootstrap v4).

Installation

Install it using composer:

composer require lukapeharda/laravel-password-setup

The service provider will be auto-discovered.

Consider publishing the package to override config or view:

php artisan vendor:publish and select appropriate package from list of provided ones

Usage

By default, package is set to listen to LukaPeharda\LaravelPasswordSetup\Events\UserCreated (which accepts a $user model) and then via LukaPeharda\LaravelPasswordSetup\Listeners\SendNotification listener sends a LukaPeharda\LaravelPasswordSetup\Notifications\SetPassword notification (with generated token) to provided user.

The user will receive an email with a link to a screen where he needs to enter (and confirm) his new password. After entering (and confirming) new password, the user will be logged in automatically.

You can adjust or disable some parts of this flow (and substitute it with your own code) in config/laravel-password-setup.php.

Alternatively, you can use artisan command php artisan password:setup {user} and give it user ID and it will generate a token and send an email notification to the given user.