https://github.com/chrysanthos/laravel-otp
A Laravel OTP Verification package
https://github.com/chrysanthos/laravel-otp
hacktoberfest laravel laravel-auth laravel-authentication laravel-framework laravel-otp laravel-package otp php php-otp
Last synced: 2 months ago
JSON representation
A Laravel OTP Verification package
- Host: GitHub
- URL: https://github.com/chrysanthos/laravel-otp
- Owner: chrysanthos
- License: mit
- Created: 2022-11-29T23:28:20.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T10:09:04.000Z (4 months ago)
- Last Synced: 2025-08-22T01:57:35.871Z (2 months ago)
- Topics: hacktoberfest, laravel, laravel-auth, laravel-authentication, laravel-framework, laravel-otp, laravel-package, otp, php, php-otp
- Language: Blade
- Homepage: https://packagist.org/packages/chrysanthos/laravel-otp
- Size: 69.3 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Login Otp for Laravel
[](https://packagist.org/packages/chrysanthos/laravel-otp)
[](https://github.com/chrysanthos/laravel-otp/actions?query=workflow%3Arun-tests+branch%3Amain)
[](https://github.com/chrysanthos/laravel-otp/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
[](https://packagist.org/packages/chrysanthos/laravel-otp)
This package lets you set up an OTP verification process upon user login.
## Installation
You can install the package via composer:
```bash
composer require chrysanthos/laravel-otp
```
You can publish the config file with:
```bash
php artisan vendor:publish --tag="laravel-otp-config"
```
There are the contents of the published config file:
```php
return [
/**
* Whether the package will register the routes and listeners.
*/
'enabled' => false,
/**
* The logo image to be shown above otp input.
*/
'logo' => null,
/**
* The notification to be sent to the logged-in user.
* Override this with your own implementation so that
* you can customize the channels, message format etc.
*/
'notification' => \Chrysanthos\LaravelOtp\Notifications\SendOtpToUserNotification::class,
/**
* The paths that should be protected by otp. This must be
* relative paths with no slashes at the start of the string.
* Use this option in case you have admin login area with tools
* like Nova/Backpack/Filament and only nedd otp in the main site
*
* Sadly the paths must point to the uri path of the route that the login form is submitted to.
*/
'paths' => [
'*',
],
];
```
Optionally, you can publish the login view using
```bash
php artisan vendor:publish --tag="laravel-otp-views"
```
## Usage
Add the RedirectToOtpPage Middleware to the routes you wish to be protected by OTP.
```php
use Chrysanthos\LaravelOtp\Middleware\RedirectToOtpPage;
Route::middleware([
'auth:sanctum',
RedirectToOtpPage::class,
])->group(function () {
Route::get('/dashboard', DashboardController::class);
});
```
You may customize the notification by changing the `notification` key in the config.
By setting the notification to a custom notification class you have full flexibility on how the notification is sent (Channels, Text, etc.)
```php
'notification' => \App\Notifications\YourCustomNotification::class,
```
## Testing
```bash
composer test
```
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Security Vulnerabilities
Please contact me directly via email.
## Credits
- [Chrysanthos Prodromou](https://github.com/chrysanthos)
- [All Contributors](../../contributors)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.