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

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

WBOY
WBOYOriginal
2016-06-06 20:21:191648browse

前前后后花了很长时间终于彻底明白了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()->你的字段名

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn