搜尋

首頁  >  問答  >  主體

laravel - laravle5.0.22 如何修改驗證加密方式(改成MD5驗證)

auth 登入驗證已經不是用MD5了,如何新增一個MD5的驗證,不修改原始碼的狀況。求詳細點的介紹。

PHP中文网PHP中文网2750 天前604

全部回覆(1)我來回復

  • 天蓬老师

    天蓬老师2017-05-16 16:57:43

    題主說的是加密密碼麼?

    如果是,可以在User.php加上這個

    
    public function setPasswordAttribute($password)
        {
            $this->attributes['password'] = md5($password);
        }

    ================================================= ==============

    修改部分:

    1. 在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;
        }
    
    }
    

    make your provider

    命令列:

    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

    回覆
    0
  • 取消回覆