PHPackages                             yebor974/filament-renew-password - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. yebor974/filament-renew-password

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

yebor974/filament-renew-password
================================

Package for manage renew password according to the last renew or other criteria

3.1.0(4mo ago)4482.6k—7.6%17[1 issues](https://github.com/yebor974/filament-renew-password/issues)2MITPHPPHP ^8.2

Since Jan 5Pushed 4mo ago4 watchersCompare

[ Source](https://github.com/yebor974/filament-renew-password)[ Packagist](https://packagist.org/packages/yebor974/filament-renew-password)[ Docs](https://github.com/yebor974/filament-renew-password)[ Fund](https://www.buymeacoffee.com/yebor974)[ GitHub Sponsors](https://github.com/yebor974)[ RSS](/packages/yebor974-filament-renew-password/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (24)Used By (2)

Filament Renew Password Plugin
==============================

[](#filament-renew-password-plugin)

[![Filament v3](https://camo.githubusercontent.com/d082c39a7d58f5442886c39b27bf573d9f9b36e0f5c45cf4e5c03a71e522da99/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76332d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)](https://camo.githubusercontent.com/d082c39a7d58f5442886c39b27bf573d9f9b36e0f5c45cf4e5c03a71e522da99/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76332d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)[![Filament v4](https://camo.githubusercontent.com/f849d97ca9dede39ec5711ce5f7bb495a5c481d7049059343c674d6e6981e839/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76342d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)](https://camo.githubusercontent.com/f849d97ca9dede39ec5711ce5f7bb495a5c481d7049059343c674d6e6981e839/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76342d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)[![Filament v5](https://camo.githubusercontent.com/55c807d5828d9423970838da788c61fead7bb4a81dfff2e614e8dd676df64060/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76352d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)](https://camo.githubusercontent.com/55c807d5828d9423970838da788c61fead7bb4a81dfff2e614e8dd676df64060/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d76352d2d737461626c652d737563636573733f6c6f676f3d66696c616d656e74)[![License](https://camo.githubusercontent.com/216c4db1f1749d1a1d5b5ddd253f59589dd75c22cf8449585108360c727ed328/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7965626f723937342f66696c616d656e742d72656e65772d70617373776f7264)](https://camo.githubusercontent.com/216c4db1f1749d1a1d5b5ddd253f59589dd75c22cf8449585108360c727ed328/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7965626f723937342f66696c616d656e742d72656e65772d70617373776f7264)

The Filament Renew Password Plugin enhances Filament by prompting users to renew their passwords based on specified criteria.

Two default renewal processes are implemented:

- Recurring Renewal
- Force Renewal

You are free to add your own renewal criteria.

[![Screenshot](https://camo.githubusercontent.com/4ac1a1ea13ec34940b41af8f60b7a3b79ef926a89010ce3f11b935d117ecf46a/68747470733a2f2f6a756c69656e626f7965722e72652f6173736574732f6769746875622f66696c616d656e742d72656e65772d70617373776f72642f73637265656e73686f745f312e706e67)](https://camo.githubusercontent.com/4ac1a1ea13ec34940b41af8f60b7a3b79ef926a89010ce3f11b935d117ecf46a/68747470733a2f2f6a756c69656e626f7965722e72652f6173736574732f6769746875622f66696c616d656e742d72656e65772d70617373776f72642f73637265656e73686f745f312e706e67)

Installation
------------

[](#installation)

1. Install the package using the composer command:

> ✅ **Filament v4 and v5** compatibility are available in **version 3.x** of this plugin.
>
> ```
> composer require yebor974/filament-renew-password
> ```
>
>
>
> ✅ If you are using **Filament v3**, please install **version 2.x**:
>
> ```
> composer require yebor974/filament-renew-password:^2.0
> ```

2. Publish and run the migration, which adds new columns `last_renew_password_at` and `force_renew_password` to the users table.

```
php artisan vendor:publish --tag="filament-renew-password-migrations"
php artisan migrate
```

Alternatively, if you don't want to publish the migrations or already have columns in your database for such case, you can skip this step and customize the column name by using any of the configuration methods described in the [Configuration](#configuration) section below.

3. Optionally, you can publish translations files with:

```
php artisan vendor:publish --tag="filament-renew-password-translations"
```

4. Register the plugin in your panel provider:

```
use Yebor974\Filament\RenewPassword\RenewPasswordPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
       ->plugin(new RenewPasswordPlugin());
}
```

Configuration
-------------

[](#configuration)

Filament Renew Password Plugin is designed to work out of the box with minimal configuration. However, you can customize the plugin by publishing the configuration file, changing the environment variables or using the plugin object to override the default settings.

### Renewal Processes

[](#renewal-processes)

Two configurations are available and can be used simultaneously.

- Recurring renew process

By default, recurring renewal process is disabled.

To activate recurring renewal process, you have to call `passwordExpiresIn` and define the number of days of recurring:

```
RenewPasswordPlugin::make()
    ->passwordExpiresIn(days: 30)
```

This activation automatically manages a last renewal timestamp column named `last_renew_password_at`. You can customize it with the `timestampColumn` function:

```
RenewPasswordPlugin::make()
    ->passwordExpiresIn(days: 30)
    ->timestampColumn('your_custom_timestamp_column')
```

- Force renew process

The force renewal process can be useful for example when an administrator creates a user. You can send a temporary password to the new user and force them to renew their password at the first login.

By default, force renewal process is disabled.

To activate it, you have to call `forceRenewPassword` function:

```
RenewPasswordPlugin::make()
    ->forceRenewPassword()
```

This activation automatically manages a force renew boolean column named `force_renew_password`. If you want to customize it, you can define with second param:

```
RenewPasswordPlugin::make()
    ->forceRenewPassword(forceRenewColumn: 'your_custom_boolean_force_column')
```

If you dont want the recurring renewal process but only want the force renewal process with also timestamp column you can add it with:

```
RenewPasswordPlugin::make()
    ->forceRenewPassword()
    ->timestampColumn('your_custom_timestamp_column')
```

> You can of course use both process with this configuration:

```
RenewPasswordPlugin::make()
    ->passwordExpiresIn(days: 30)
    ->forceRenewPassword()
```

> And with columns customization:

```
RenewPasswordPlugin::make()
    ->passwordExpiresIn(days: 30)
    ->forceRenewPassword(forceRenewColumn: 'your_custom_boolean_force_column')
    ->timestampColumn('your_custom_timestamp_column')
```

### Custom Renew Page

[](#custom-renew-page)

By default, `RenewPassword` simple page is used to ask user to renew it. You can custom it with:

```
RenewPasswordPlugin::make()
    ->renewPage(CustomRenewPassword::class)
```

### Route URI

[](#route-uri)

`'password/renew'` is the default route URI when being asked to change passwords. For translation purposes, you may want to customize this. You can do this with the following configuration:

```
RenewPasswordPlugin::make()
    ->routeUri('wachtwoord/vernieuwen')
```

Usage
-----

[](#usage)

Implement the `RenewPasswordContract` on your Authentication Model (User) and define the criteria for prompting password renewal in the `needRenewPassword` function.

- Default Trait

You can use the `RenewPassword` trait on your Authentication Model (User).

```
class User extends Authenticatable implements RenewPasswordContract
{
    use RenewPassword;
}
```

This trait manages recurring renew if activated and/or force renew if activated:

```
public function needRenewPassword(): bool
{
    $plugin = RenewPasswordPlugin::get();

    return
        (
            !is_null($plugin->getPasswordExpiresIn())
            && Carbon::parse($this->{$plugin->getTimestampColumn()})->addDays($plugin->getPasswordExpiresIn()) < now()
        ) || (
            $plugin->getForceRenewPassword()
            && $this->{$plugin->getForceRenewColumn()}
        );
}
```

- Custom criteria

You can make your own criteria by implement `needRenewPassword` function on your Authentication Model (User). In this case, you will certainly need to customize the `RenewPassword` simple page described above.

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance77

Regular maintenance activity

Popularity46

Moderate usage in the ecosystem

Community27

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 65.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~37 days

Recently: every ~103 days

Total

21

Last Release

120d ago

Major Versions

1.2.4 → 2.0.02024-07-02

2.1.3 → 3.0.02025-08-04

PHP version history (2 changes)1.0.0PHP ^8.1

3.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c30e8b15bc867d1e01c3741f7e992d6b77ae5b83ca670e6edfcfd2c77c7a018?d=identicon)[yebor974](/maintainers/yebor974)

---

Top Contributors

[![yebor974](https://avatars.githubusercontent.com/u/48555577?v=4)](https://github.com/yebor974 "yebor974 (23 commits)")[![DGINXREAL](https://avatars.githubusercontent.com/u/47042042?v=4)](https://github.com/DGINXREAL "DGINXREAL (2 commits)")[![saade](https://avatars.githubusercontent.com/u/14329460?v=4)](https://github.com/saade "saade (2 commits)")[![Corvisier](https://avatars.githubusercontent.com/u/202424?v=4)](https://github.com/Corvisier "Corvisier (1 commits)")[![agencetwogether](https://avatars.githubusercontent.com/u/53862310?v=4)](https://github.com/agencetwogether "agencetwogether (1 commits)")[![eugenpasca](https://avatars.githubusercontent.com/u/26302190?v=4)](https://github.com/eugenpasca "eugenpasca (1 commits)")[![l3aro](https://avatars.githubusercontent.com/u/25253808?v=4)](https://github.com/l3aro "l3aro (1 commits)")[![masterix21](https://avatars.githubusercontent.com/u/6555012?v=4)](https://github.com/masterix21 "masterix21 (1 commits)")[![DrAnax](https://avatars.githubusercontent.com/u/2622043?v=4)](https://github.com/DrAnax "DrAnax (1 commits)")[![arjendejong12](https://avatars.githubusercontent.com/u/10572554?v=4)](https://github.com/arjendejong12 "arjendejong12 (1 commits)")[![coderdev21](https://avatars.githubusercontent.com/u/30912173?v=4)](https://github.com/coderdev21 "coderdev21 (1 commits)")

---

Tags

filamentphplaravelpasswordlaravelpasswordfilamentrenew

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/yebor974-filament-renew-password/health.svg)

```
[![Health](https://phpackages.com/badges/yebor974-filament-renew-password/health.svg)](https://phpackages.com/packages/yebor974-filament-renew-password)
```

###  Alternatives

[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[stephenjude/filament-two-factor-authentication

Filament Two Factor Authentication: Google 2FA + Passkey Authentication

81158.7k4](/packages/stephenjude-filament-two-factor-authentication)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

5925.8k](/packages/marcelweidum-filament-passkeys)[chiiya/filament-access-control

Admin user, role and permission management for Laravel Filament

21847.2k](/packages/chiiya-filament-access-control)[diogogpinto/filament-auth-ui-enhancer

This Filament plugin empowers you to transform your auth pages with ease, allowing you to make them truly stand out. It offers a flexible alternative to the default auth pages in the Filament Panels package.

13493.9k6](/packages/diogogpinto-filament-auth-ui-enhancer)[caresome/filament-auth-designer

Transform Filament's default auth pages into stunning, brand-ready experiences

3916.8k2](/packages/caresome-filament-auth-designer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
