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