2017 © Pedro Peláez
 

library password-policy

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

image

joshralph/password-policy

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

  • Wednesday, October 25, 2017
  • by joshralph93
  • Repository
  • 1 Watchers
  • 5 Stars
  • 3,084 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 8 % Grown

The README.md

Build Status, (*1)

A fluent password policy builder library. The package can be used stand-alone or easily added to Laravel., (*2)

Table of Contents

Install

$ composer require joshralph/password-policy

Usage

Policy Builder

$builder = new \PasswordPolicy\PolicyBuilder(new \PasswordPolicy\Policy);
$builder->minLength(6)
    ->upperCase();

Any of the following methods may be chained on the builder class to build your password policy., (*3)

minLength(length)

length

Type: int, (*4)

Minimum number of characters the password must contain., (*5)

maxLength(length)

length

Type: int, (*6)

Maximum number of characters the password must contain., (*7)

upperCase([min])

min

Type: int, (*8)

Minimum number of upper case characters the password must contain., (*9)

lowerCase([min])

min

Type: int, (*10)

Minimum number of lower case characters the password must contain., (*11)

digits([min])

min

Type: int, (*12)

Minimum number of numeric characters the password must contain., (*13)

doesNotContain(phrases [,phrases])

phrases

Type: string|array, (*14)

Phrases that the password should not contain, (*15)

Example, (*16)

->doesNotContain('password', $firstName, $lastName)

minPassingRules(passesRequired, ruleSet)

passesRequired

Type: int, (*17)

The minimum number of rules in the ruleSet that need to pass, in order for this rule to pass, (*18)

ruleSet

Type: \Closure, (*19)

A closure which is given a new PolicyBuilder instance., (*20)

Example, (*21)

// One of these rules must pass
->minPassingRules(1, function (PolicyBuilder $builder) {
    $builder->doesNotContain('password')
        ->minLength(10);
})

Laravel

If you are a Laravel user, this package can seamlessly integrate with your validators., (*22)

Install Package

Begin by adding the below service provider., (*23)

// config/app.php

'providers' => [
    // ...
    \PasswordPolicy\Providers\Laravel\PasswordPolicyServiceProvider::class,
],

Define Policies

Within an app service provider (e.g. AppServiceProvider.php) you can start defining password policies., (*24)

// App/Providers/AppServiceProvider.php

// use PasswordPolicy\PolicyBuilder;


/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    \PasswordPolicy::define('default', function (PolicyBuilder $builder) {
        $builder->minLength(8)
            ->upperCase(3);
            // ...
    });
}

You can define as many policies as you require, however it's recommended to stick with 'default' when possible., (*25)

Setup Validation

Once you're policies have been defined, you're ready to start using the policies. A new 'password' validation rule is now available to use., (*26)

// Request class

/**
 * Declare validation rules
 * 
 * @return array
 */
public function rules()
{
    return [
        // ...
        'password' => 'required|password'
    ];
}

The validator will use the 'default' policy by default. To use an alternative policy, add an additional parameter:, (*27)


'password' => 'required|password:admin'

The Versions

25/10 2017

dev-master

9999999-dev

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

  Sources   Download

The Requires

  • php >=5.5

 

The Development Requires

01/08 2016

dev-develop

dev-develop

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

  Sources   Download

The Requires

  • php >=5.5

 

The Development Requires