>백엔드 개발 >PHP 튜토리얼 >laravel 5.0如何实现登录密码字段不为password或加签方式自定义。

laravel 5.0如何实现登录密码字段不为password或加签方式自定义。

WBOY
WBOY원래의
2016-06-06 20:21:191648검색

前前后后花了很长时间终于彻底明白了laravel5.0是如何实现登录的,感觉非常复杂。

比如说现在数据库中密码字段为pwd,而不是系统默认的password时,修改的文件有:

<code>// \vendor\laravel\framework\src\Illuminate\Auth\Authenticatable.php
public function getAuthPassword()
{
//    return $this->password; 修改为
    return $this->pwd;
}
</code>

如果加签方式不一样,修改的文件有:

<code>// \vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php
public function validateCredentials(UserContract $user, array $credentials)
{
    $plain = $credentials['password'];

    // 下面的$this->hasher->check修改为自定义加签后的字符串相等判断
    return $this->hasher->check($plain, $user->getAuthPassword());
}
</code>

这样修改的话相当于修改了laravel的源码,一点也不优雅,不知有没有什么更好的办法?

回复内容:

前前后后花了很长时间终于彻底明白了laravel5.0是如何实现登录的,感觉非常复杂。

比如说现在数据库中密码字段为pwd,而不是系统默认的password时,修改的文件有:

<code>// \vendor\laravel\framework\src\Illuminate\Auth\Authenticatable.php
public function getAuthPassword()
{
//    return $this->password; 修改为
    return $this->pwd;
}
</code>

如果加签方式不一样,修改的文件有:

<code>// \vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php
public function validateCredentials(UserContract $user, array $credentials)
{
    $plain = $credentials['password'];

    // 下面的$this->hasher->check修改为自定义加签后的字符串相等判断
    return $this->hasher->check($plain, $user->getAuthPassword());
}
</code>

这样修改的话相当于修改了laravel的源码,一点也不优雅,不知有没有什么更好的办法?

你也可以自己实现登陆注册啊。不过我觉得自带的已经很好用了。
如果你往user表加字段了获取字段值的话,可以 auth()->user()->你的字段名

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.