laravel使用jwt后 默认使用email和password鉴权,如何修改为其它字段?

laravel使用jwt后 默认使用email和password鉴权,如何修改为其它字段?

阅读 2.1k
1 个回答

不知道你是用的哪一个认证套件,如果是 laravel-ui,要修改 email 字段,可以在登录的控制器里面添加一个 username 方法,其返回一个用来验证的字段名。

如果你要数据库中存储的密码的字段不是 password ,就在 User 模型上添加一个 getAuthPassword 方法,用来返回保存的密码,这个函数的返回值会和你传入的 password (经过hash 处理)进行比较。

你也可以直接使用 auth 的 attempt 方法,进行手动认证。在 password 字段上传入你的密码,其他的字段会被用来作为查询的条件,这也是文档中举例的方式。


// 手动认证
$token = auth()->attempt(['phone' => 2134, 'password' => '123456',]);


// User.php
function getAuthPassword() {
    return $this->user_password;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进