我试图将laravel 5.4中的auth集成到现有数据库中,其中用户和密码字段具有其他名称( memberid
, passwordnew_enc
) . 随着波纹管的变化并迫使 RegisterController
中的 create
功能使用MD5,我设法使注册工作 . 注册后它也会正常登录 . 但是实际的登录表单返回:
这些凭据与我们的记录不符 .
到目前为止我已经改变了 User.php
public function getAuthPassword()
{
return $this->passwordnew_enc;
}
和
public function setPasswordAttribute($value)
{
$this->attributes['password'] = md5($value);
}
同样在 LoginController.php
public function username()
{
return 'memberid';
}
我错过了什么 ?
我只需要更改两个列名称以适应密码加密从bcrypt到md5
3 回答
我会自定义用户提供程序
php artisan make:provider CustomUserProvider
:这样,如果使用md5存在密码,它将允许它工作一次然后重新散列它 .
您将在
App\Providers\AuthServiceProvider boot()
中注册CustomUserProvider
,如下所示:编辑你的
config/auth.php
如前所述,您还需要添加以下内容...
好吧,我明白了
app\User.php
app\Http\Controllers\Auth\LoginController.php
config\app.php
app\Providers\MD5HashServiceProvider.php
lib\MD5Hasher\MD5Hasher.php
composer.json
upful的代码对我有用(在Laravel 5.4中)
但我需要补充一下:
在
CustomUserProvider
班 .