auth 登录验证已经不是用MD5了,如何添加一个MD5的验证,不修改源码的情况。求详细点的介绍。
天蓬老师2017-05-16 16:57:43
题主说的是加密密码么?
如果是,可以在User.php
加上这个
public function setPasswordAttribute($password)
{
$this->attributes['password'] = md5($password);
}
===============================================================
修改部分:
app/
下创建一个MD5/
文件夹。里面创建一个MD5Hasher类(MD5Hasher.php)
:class MD5Hasher implements Illuminate/Contracts/Hashing/Hasher {
/**
* Hash the given value.
*
* @param string $value
* @return array $options
* @return string
*/
public function make($value, array $options = []) {
return md5($value);
}
/**
* Check the given plain value against a hash.
*
* @param string $value
* @param string $hashedValue
* @param array $options
* @return bool
*/
public function check($value, $hashedValue, array $options = []) {
return $this->make($value) === $hashedValue;
}
/**
* Check if the given hash has been hashed using the given options.
*
* @param string $hashedValue
* @param array $options
* @return bool
*/
public function needsRehash($hashedValue, array $options = []) {
return false;
}
}
命令行:
php artisan make:provider MD5HashServiceProvider
在这个文件的register()
方法写上:
public function register()
{
$this->app['hash'] = $this->app->share(function () {
return new MD5Hasher();
});
}
config/app.php
,注释下面这一行:
Illuminate\Hashing\HashServiceProvider::class,
加上你的:
MD5HashServiceProvider::class
Happy Hacking