我正在使用Laravel开发REST API。我正在使用Passport为我的API实现身份验证功能。我正在关注本教程 - https://scotch.io/@neo/getting-started-with-laravel-passport。我安装并配置成功。我现在唯一的问题是,当我从此端点请求令牌“oauth / token”时,API始终要求输入用户名和密码。请看下面的情景。
我在数据库中注册了这样的用户。
$user = [
'name' => 'waiyanhein',
'email' => 'iljimae.ic@gmail.com',
'password' => bcrypt('testing')
];
App\User::create($user);
注册用户并在数据库中创建记录。使用我在安装密码和用户凭据期间获得的客户端ID和密码,我发出了生成访问令牌的请求,如教程中所示。但是我从REST客户端发出了请求。我的请求如下面的屏幕截图所示。
如您所见,我提供了有效的用户凭据以及客户端ID和密码。当我发出请求时,REST客户端工具会提示弹出框再次请求用户凭据,如下面的屏幕截图所示。
当我再次输入凭据时,即使凭据有效,它也会一直弹出对话框。我尝试使用电子邮件,而不是使用用户名。无论我如何尝试,它只是要求用户凭据。请求的原因和错误是什么?如何正确传递请求中的凭据?
答案 0 :(得分:0)
Laravel护照假定您在username
表格中有users
列,因为您没有此列,而是name
,您需要告诉护照。
第一种方法using Accessors:
public function getUsernameAttribute(){
return $this->attributes['name'];
}
使用findForPassport
的第二种方法:
public function findForPassport($username) {
return $this->where('name', $username)->first();
}