自定义身份验证和哈希 laravel 5.1

custom auth and hashing laravel 5.1

我有一个现有的数据库。

users :
username => varchar
password => md5 hashing

我是 laravel 的新手,我尝试创建简单的登录并从 laravel docs 注册,效果很好, 但在文档中是为 laravel 创建的, 现在我想创建相同的 login/register 但使用现有数据。

我读了一些来自 How to use SHA1 encryption instead of BCrypt in Laravel 4? 的问题 但是我不知道怎么用。

有什么广告吗?

抱歉我的语法不好。

我会尽力回答我的问题。 我取自 Facebook Group Laravel Indonesia

  • 创建目录app/libraries

  • app/libraries添加到composer.json

    "classmap": ["database","app/libraries"],

  • app/libraries

    中创建 MD5Hasher.php
    <?php    
    namespace App\Libraries;        
    use Illuminate\Contracts\Hashing\Hasher as HasherContract;
    
    class MD5Hasher implements HasherContract {
    
    public function make($value, array $options = array()) {
    $value = env('SALT', '').$value;
    return md5($value);
    }
    
    public function check($value, $hashedValue, array $options = array()) {
    return $this->make($value) === $hashedValue;
    }
    
    public function needsRehash($hashedValue, array $options = array()) {
    return false;
    }
    
    }
    
  • app/libraries

    中创建 MD5HashServiceProvider.php
    <?php
    
    namespace App\Libraries;
    
    use Illuminate\Support\ServiceProvider;
    
    class MD5HashServiceProvider extends ServiceProvider {
    
    /**
    * Register the service provider.
    *
    * @return void
    */
    public function register() {
    $this->app['hash'] = $this->app->share(function () {
    return new MD5Hasher();
    });
    
    }
    
    /**
    * Get the services provided by the provider.
    *
    * @return array
    */
    public function provides() {
    return array('hash');
    }
    
    }
    
  • config/app.php

    查找Illuminate\Hashing\HashServiceProvider::class,

    改为App\Libraries\MD5HashServiceProvider::class,

  • AuthController.php

    添加protected $username = 'username';

    return Validator::make($data, [
                //'name' => 'required|max:255',
                'username' => 'required',
                'password' => 'required|confirmed|min:5',
            ]);
    
    return User::create([
                //'name' => $data['name'],
                'username' => $data['username'],
                'password' => md5($data['password']),
            ]);
    
  • App\Users.php

    改变protected $fillable = ['name', 'email', 'password'];

    protected $fillable = ['username', 'password'];

  • 别忘了运行composer dumpautoload

我不知道我做的对不对。

关注