Skip to content

mjelamanov/laravel-auth-password

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel auth password

Build Status StyleCI Latest Stable Version License

This package allows you to validate an authenticated user's password. For laravel 6.0 and above please use the native password rule.

Table of Contents

Requirements

  • PHP 7.1 or above.
  • Laravel 5.8 or 6.0.

Installation

composer require mjelamanov/laravel-auth-password

Don't forget to add the translation key bellow to your app's lang files.

// in resources/lang/en/validation.php

'auth_password' => 'The :attribute is not valid',

Use rule

Create a rule instance via RuleFactoryInterface.

// In your controller

use Illuminate\Http\Request;
use Mjelamanov\Laravel\AuthPassword\Rule\RuleFactoryInterface;

public function changeUserPassword(Request $request, RuleFactoryInterface $ruleFactory)
{
    $this->validate($request, [
        'current_password' => ['bail', 'required', 'min:6', $ruleFactory->createRule()],
        'new_password' => 'bail|required|string|min:6',
        'new_password_confirmation' => 'bail|required|confirmed',
    ]);

    // Passwords are valid. Place your logic here.
}

You can specify a different guard name.

$ruleFactory->createRule(); // default application's guard
$ruleFactory->createRule('web');
$ruleFactory->createRule('api');

// or custom guard
$ruleFactory->createRule('admin');

$ruleFactory->createRule('non-existen'); // Throws \InvalidArgumentException 

Use extension

You may use the validation extension also.

// In your controller

public function changeUserPassword(Request $request)
{
    $this->validate($request, [
        'current_password' => 'bail|required|min:6|auth_password',
        'new_password' => 'bail|required|string|min:6',
        'new_password_confirmation' => 'bail|required|confirmed',
    ]);

    // Passwords are valid. Place your logic here.
}

You can also specify a different guard name.

'field' => 'auth_password', // default application's guard
'field' => 'auth_password:web',
'field' => 'auth_password:api',

// or custom guard
'field' => 'auth_password:admin',

'field' => 'auth_password:non_existen', // Throws \InvalidArgumentException