Package Data | |
---|---|
Maintainer Username: | matriphe |
Maintainer Contact: | zam@nuwira.co.id (Muhammad Zamroni) |
Package Create Date: | 2017-07-29 |
Package Last Update: | 2018-03-06 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-24 15:05:43 |
Package Statistics | |
---|---|
Total Downloads: | 852 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 3 |
Total Watchers: | 8 |
Total Forks: | 1 |
Total Open Issues: | 0 |
Bandrek is local word in Javanese that means a lock pick. We use lock pick to open a padlock if the key is lost.
Bandrek replaces Laravel's password recovery manager to provide code and token when requesting password recovery. This code can be used as token replacement if you are using REST-API to reset password without visiting web interface.
Bandrek generate 6 random numeric character as code. Bandrek is also creating 64 characters token that can be used in normal web page interface.
The scenario is when user request password recovery via REST-API, the user can send the credentials (e-mail and password) and the easy readable code to reset the password.
Bandrek only supports Laravel 5.4 and above. To install using Composer, just run this command below.
composer require nuwira/bandrek
After installed, open config/app.php
and find this line.
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class
Comment or remove it and add that line to override Laravel's password reset handling.
Nuwira\Bandrek\BandrekServiceProvider::class
This is optional. To add Facade, add config/app.php
in the aliases
section.
'Bandrek' => Nuwira\Bandrek\BandrekFacade::class,
If Facade is loaded, you can call these functions
Bandrek::getRandomCode($length = 6, $toString = true);
Bandrek::generateToken();
Bandrek::getTokenFromCode($code);
Bandrek::getCodeFromToken($token, $toString = true);
To be able to send reset password instruction e-mail, open app/User.php
(the user model file) and find this line.
use Illuminate\Foundation\Auth\User as Authenticatable;
Replace that line with this.
use Nuwira\Bandrek\Auth\User as Authenticatable;
Bandrek by default is using e-mail for notification. You can add or replace using your preferred method by extending abstract class Nuwira\Bandrek\Notification\BandrekNotification
. The token and code are available in $this->code
and $this->token
in the notification class.
For example, if you want to send the code using Gammu SMS notification, just install and configure it.
To use SMS and e-mail for code sending, add function in your model that extends Nuwira\Bandrek\Auth\User
and inject the notification.
Notification File: App\Notifications\ResetPassword.php
namespace App\Notifications;
use Nuwira\Bandrek\Notification\BandrekNotification;
use Illuminate\Notifications\Messages\MailMessage;
use NotificationChannels\Gammu\GammuChannel;
use NotificationChannels\Gammu\GammuMessage;
class ResetPassword extends BandrekNotification
{
public function via($notifiable)
{
return ['mail', GammuChannel::class];
}
public function toMail($notifiable)
{
return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', url(config('app.url').route('password.reset', $this->token, false)))
->line('If you did not request a password reset, no further action is required.');
}
public function toGammu($notifiable)
{
return (new GammuMessage())
->to($phoneNumber)
->content('To reset password, use this code: '.$this->code);
}
}
Model File: App\User.php
namespace App;
use Nuwira\Bandrek\Auth\User as BaseUser;
use App\Notifications\ResetPassword as ResetPasswordNotification;
class User extends BaseUser
{
public function sendPasswordResetNotification($token)
{
$this->notify(new ResetPasswordNotification($token));
}
}
The MIT License (MIT). Please see License File for more information.