PHP code example of sh4msi / filament-otp

1. Go to this page and download the library: Download sh4msi/filament-otp library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

sh4msi / filament-otp example snippets


return [
    /**
     * The panel IDs where Filament OTP routes should be registered.
     * When set to null, routes will be registered for panels that have the FilamentOtpPlugin installed,
     * or for all panels if no panel explicitly registered the plugin.
     * Example: ['app', 'admin']
     */
    'panels' => null,

    /**
     * The authentication model to use.
     */
    'user_model' => \App\Models\User::class,

    /**
     * login columns
     */
    'login_key' => 'email',

    'login_key_rule' => ['email', 'TokenGeneratorInterface
     */
    'token_generator' => \Sh4msi\FilamentOtp\Utility\TokenGenerator::class,

    /**
     * Token notification class
     */
    'token_notification' => \Sh4msi\FilamentOtp\Notifications\NotificationOTP::class,

    /**
     * Login confirmation page component
     *
     * If you want to change something, place your component here.
     */
    'confirm_token_component' => \Sh4msi\FilamentOtp\Http\Livewire\Auth\ConfirmOTP::class,

    'login_otp_component' => \Sh4msi\FilamentOtp\Http\Livewire\Auth\LoginOTP::class,

];

use Illuminate\Foundation\Auth\User as Authenticatable;
use Sh4msi\FilamentOtp\Traits\OtpLogin;

class User extends Authenticatable
{
    use OtpLogin;

    // ...
}

use Filament\Panel;
use Illuminate\Contracts\View\View;
use Sh4msi\FilamentOtp\FilamentOtpPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentOtpPlugin::make())
        ->renderHook(
            'panels::auth.login.form.after',
            fn (): View => view('filament-otp::livewire.login-otp-btn'),
        );
}

// Route name scoped by panel ID:
route('filament-otp.' . Filament::getCurrentPanel()->getId() . '.login')

// Or helper methods (auto-resolves current active panel):
\Sh4msi\FilamentOtp\Facades\FilamentOtp::getLoginUrl()
\Sh4msi\FilamentOtp\Facades\FilamentOtp::getConfirmUrl()

// Only register OTP routes for specific panels:
'panels' => ['app'],

// Or set to null to automatically register on all panels that 
bash
php artisan vendor:publish --tag="filament-otp-config"
bash
php artisan vendor:publish --tag="filament-otp-views"