Configuring password format | laravel-one-time-passwords | Spatie

 SPATIE

  Laravel One-Time Passwords
=============================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-one-time-passwords](https://spatie.be/docs/laravel-one-time-passwords/v1)  Configuring-security  Configuring password format

 Version   v2   v1

 Other versions for crawler [v2](https://spatie.be/docs/laravel-one-time-passwords/v2) [v1](https://spatie.be/docs/laravel-one-time-passwords/v1)

- [ Introduction ](https://spatie.be/docs/laravel-one-time-passwords/v1/introduction)
- [ Support us ](https://spatie.be/docs/laravel-one-time-passwords/v1/support-us)
- [ Installation &amp; setup ](https://spatie.be/docs/laravel-one-time-passwords/v1/installation-setup)
- [ Questions and issues ](https://spatie.be/docs/laravel-one-time-passwords/v1/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-one-time-passwords/v1/changelog)
- [ About us ](https://spatie.be/docs/laravel-one-time-passwords/v1/about-us)

Basic usage
-----------

- [ Introducing one-time-passwords ](https://spatie.be/docs/laravel-one-time-passwords/v1/basic-usage/introducing-one-time-passwords)
- [ Creating one-time passwords ](https://spatie.be/docs/laravel-one-time-passwords/v1/basic-usage/creating-one-time-passwords)
- [ Configuring notifications ](https://spatie.be/docs/laravel-one-time-passwords/v1/basic-usage/configuring-notifications)
- [ Consuming one-time passwords ](https://spatie.be/docs/laravel-one-time-passwords/v1/basic-usage/consuming-one-time-passwords)
- [ Using the Livewire component ](https://spatie.be/docs/laravel-one-time-passwords/v1/basic-usage/using-the-livewire-component)

Configuring security
--------------------

- [ Introduction ](https://spatie.be/docs/laravel-one-time-passwords/v1/configuring-security/introduction)
- [ Enforcing origin ](https://spatie.be/docs/laravel-one-time-passwords/v1/configuring-security/enforcing-origin)
- [ Configuring password format ](https://spatie.be/docs/laravel-one-time-passwords/v1/configuring-security/configuring-password-format)
- [ Allowing multiple passwords ](https://spatie.be/docs/laravel-one-time-passwords/v1/configuring-security/allowing-multiple-passwords)
- [ Setting default expiration time ](https://spatie.be/docs/laravel-one-time-passwords/v1/configuring-security/setting-default-expiration-time)

Advanced usage
--------------

- [ Customizing actions ](https://spatie.be/docs/laravel-one-time-passwords/v1/advanced-usage/customizing-actions)
- [ Using your own model ](https://spatie.be/docs/laravel-one-time-passwords/v1/advanced-usage/using-your-own-model)
- [ Handling events ](https://spatie.be/docs/laravel-one-time-passwords/v1/advanced-usage/handling-events)

      You are viewing the documentation for **an older version** of this package. You can check the version you are using with the following command:

 `                                    composer show spatie/laravel-one-time-passwords                                                                                                                                                                                                                                    `

Configuring password format
===========================

###  On this page

1. [ Changing the password length ](#content-changing-the-password-length)
2. [ Changing the password format ](#content-changing-the-password-format)

By default, a one-time password is a 6-digit number.

Changing the password length
--------------------------------------------------------------------------------------------------------------------------------------------

You can change the length of the password by setting the `password_length` parameter in the `one-time-passwords` config file.

Changing the password format
--------------------------------------------------------------------------------------------------------------------------------------------

One-time passwords are generated by the `Spatie\OneTimePasswords\Support\PasswordGenerators\NumericOneTimePasswordGenerator` class.

You can change the password format by creating your own class that extends the `Spatie\OneTimePasswords\Support\PasswordGenerator` base class.

Here's an example of a custom password generator that generates a 6-character alphanumeric password:

```
namespace App\Support;

use Spatie\OneTimePasswords\Support\PasswordGenerators\OneTimePasswordGenerator;

class AlphanumericPasswordGenerator implements OneTimePasswordGenerator
{
    public function generate(): string
    {
        return fake()->text($this->numberOfCharacters)
    }
}
```

Then, in your `config/one-time-passwords.php` file, set the `password_generator` key to your custom class:

```
// config/one-time-passwords.php

return [
    // ...

    'password_generator' => App\Support\AlphanumericPasswordGenerator::class,
];
```
