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

时间:2015-09-19 10:44:19

标签: php authentication md5 laravel-5.1

我有一个现有的数据库。

users :
username => varchar
password => md5 hashing

我是laravel的新手,我尝试创建简单的登录并从laravel docs注册,这样可以正常工作, 但在文档中为laravel创建, 现在我想创建相同的登录/注册但使用现有数据。

我从How to use SHA1 encryption instead of BCrypt in Laravel 4?读了一些问题 但我不明白如何使用它。

任何adv?

我的坏语法的sory。

1 个答案:

答案 0 :(得分:3)

我会尝试回答我的问题。 我是从Facebook Group Laravel Indonesia

取的
  • 创建目录app/libraries

  • app/libraries添加到composer.json

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

  • MD5Hasher.php

    中创建app/libraries
    <?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;
    }
    
    }
    
  • MD5HashServiceProvider.php

    中创建app/libraries
    <?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

我不知道我在做什么是对的。

方面