自定义身份验证和哈希 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
我不知道我做的对不对。
关注
我有一个现有的数据库。
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
我不知道我做的对不对。
关注