今天在做laravel项目的时候,需要做成md5加密的方式验证,那如何在不修改已有的源码去重构一下呢。
注:下面修改的代码做法,会把整个框架的加密方式全部修改,请根据自己的项目需求而定。
如果只要修改登录注册看这篇文章《laravel5.4登录注册MD5加密验证方法》
转载请注明(B5教程网)原文链接:http://www.bcty365.com/content-153-5884-1.html
1. 在app/下创建一个MD5/文件夹。里面创建一个MD5Hasher类(MD5Hasher.php):
<?php
namespace App\MD5;
use Illuminate\Contracts\Hashing\Hasher as HasherMD5;
//后添加MD5验证
class MD5Hasher implements HasherMD5
{
public function make($value, array $options = [])
{
return md5($value);//根据后面加密规则来设置
}
public function check($value, $hashedValue, array $options = [])
{
if(emptyempty($hashedValue)){
return true;
}
return $this->make($value) === $hashedValue;
}
public function needsRehash($hashedValue, array $options = [])
{
return false;
}
}
2. 命令行:
php artisan make:provider MD5HashServiceProvider
在这个文件的register()方法写上:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\MD5\MD5Hasher;
class MD5HashServiceProvider extends ServiceProvider
{
//后添加MD5验证
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(‘hash‘, function () {
return new MD5Hasher;
});
}
}
3.修改配置
config/app.php,注释下面这一行:
Illuminate\Hashing\HashServiceProvider::class,
加上你的:
App\Providers\MD5HashServiceProvider::class, //后添加MD5验证
4.测试如下:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
class CeshiController extends Controller
{
public function login(){
Auth::attempt([‘users_mobile‘=>‘15250735031‘,‘password‘=>‘‘]);
dd(Auth::user());
}
}