PHPackages                             innovareti/password-policy - 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. innovareti/password-policy

ActiveLibrary

innovareti/password-policy
==========================

A library to intuitively create password policies and validate a subject against them.

v1.4.4(3y ago)11.5k1PHPPHP &gt;=5.5

Since Dec 1Pushed 3y ago1 watchersCompare

[ Source](https://github.com/innovareti/password-policy)[ Packagist](https://packagist.org/packages/innovareti/password-policy)[ RSS](/packages/innovareti-password-policy/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)DependenciesVersions (9)Used By (1)

Passo 1:
========

[](#passo-1)

Para instalar primeiro rode o seguinte comando:

```
composer require innovareti/password-policy
```

Passo 2:
========

[](#passo-2)

Dentro do projeto, no arquivo config/app.php insira o seguinte provider no array de providers:

```
    'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        PasswordPolicy\Providers\Laravel\PasswordPolicyServiceProvider::class,

        ...
```

E depois rode o comando:

```
php artisan passwordpolicy:install
```

Esse comando criará a tabela de politica de senha no projeto e forçará a troca de senha para usuários que possuem a senha "password", primeiro trocando a senha para uma aleatória e mandando um email para redefinição no endereço do usuário.

Passo 3:
========

[](#passo-3)

Em seguida, adicione no arquivo app/Providers/AppServiceProvider.php, dentro da função boot o seguinte código:

```
use PasswordPolicy;
use App\Models\User;
use PasswordPolicy\Observers\UserObserver;
use PasswordPolicy\PolicyBuilder;
    public function boot()
    {
        PasswordPolicy::define('default', function (PolicyBuilder $builder) {
            $builder->defaultRules();
        });
        User::observe(UserObserver::class);
    }
```

Passo 4:
========

[](#passo-4)

Agora para utilizar a validação de senha existente no pacote, vá na classe Request desejada (Ex: UserRequest) e insira a regra "password" nas regras da senha:

```
    public function rules()
    {
        $rules = [];
        $rules = [
             'name' => 'required',
             'email' => 'required|email|unique:users,email,' . request()->id,
             'cpf' => 'required|unique:users,cpf,' . request()->id,
             'password' => 'password'  ':attribute é obrigatório',
            'unique' => ':attribute informado já está sendo utilizado',
            'email' => 'O e-mail deve ser válido',
            'password' => Policy::validationMessage() //id))
         return response()->json('Sua senha expirou! Um e-mail foi enviado no endereço '. $request->only(['email'])['email']. ' para redefinição da senha.', 401);
    ...
```

E no .ENV as seguintes variáveis:

```
PASSWORD_POLICY_ACTIVE=true
PASSWORD_POLICY_DAYS=90
```

A variável PASSWORD\_POLICY\_ACTIVE estando "true" forçará a troca de senha dos usuários a cada x dias. Esses dias são definidos pela variável PASSWORD\_POLICY\_DAYS.

Notas:
======

[](#notas)

1 - Caso as variáveis acima não estejam no .ENV, o pacote usa como padrão 90 dias e também não deixa essa troca de senha forçada ativa.

2 - A função "IsPasswordExpired" verificará de acordo com o ID do usuário passado se a senha deste está expirada ou não. Ela irá analisar a data da ultima vez que a senha do usuário foi atualizada. Essa data está contida na tabela que foi criada no comando de instalação (user\_password\_policies) e é atualizada atráves de um Observer (UserObserver) no pacote.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~0 days

Total

8

Last Release

1257d ago

PHP version history (2 changes)v1.0PHP &gt;=5.5

v1.2PHP ^5.5

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/40967715?v=4)[Innovare TI](/maintainers/innovareti)[@innovareti](https://github.com/innovareti)

---

Top Contributors

[![nmjosh](https://avatars.githubusercontent.com/u/43368937?v=4)](https://github.com/nmjosh "nmjosh (18 commits)")[![Lucas-Lima-C](https://avatars.githubusercontent.com/u/78764407?v=4)](https://github.com/Lucas-Lima-C "Lucas-Lima-C (17 commits)")[![joshralph93](https://avatars.githubusercontent.com/u/8427353?v=4)](https://github.com/joshralph93 "joshralph93 (4 commits)")[![vlad-barjovanu](https://avatars.githubusercontent.com/u/3929595?v=4)](https://github.com/vlad-barjovanu "vlad-barjovanu (1 commits)")

### Embed Badge

![Health badge](/badges/innovareti-password-policy/health.svg)

```
[![Health](https://phpackages.com/badges/innovareti-password-policy/health.svg)](https://phpackages.com/packages/innovareti-password-policy)
```

PHPackages © 2026

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