不断收到 401 未经授权的“无效凭据”Laravel Passport
Posted
技术标签:
【中文标题】不断收到 401 未经授权的“无效凭据”Laravel Passport【英文标题】:Keep getting 401 unauthorized 'invalid credentials' Laravel Passport 【发布时间】:2018-04-12 16:49:16 【问题描述】:我已经通过播种机生成了一些演示用户。我可以通过 oauth/token 登录这些用户。但是当我创建新用户时。我不能再登录了。它总是给我 401 未经授权的“无效凭据”。我做了所有的研究。我正在通过邮递员进行测试,我完全一无所知。这是我的注册方法:
$user = new User;
$user->name = ucfirst($request['name']);
$user->email = $request['email'];
$user->password = bcrypt($request['password']);
$user->save();
return response()->json('success');
这是在 Laravel 护照提供的 oauth/token 路由中发布时执行的方法:
public function issueToken(ServerRequestInterface $request)
return $this->withErrorHandling(function () use ($request)
return $this->convertResponse(
$this->server->respondToAccessTokenRequest($request, new Psr7Response)
);
);
请帮帮我!!
【问题讨论】:
我假设您已经检查了数据库以确保用户被正确注册和存储? 是的,当然!我已经做了所有可能的事情,但仍然没有任何线索。 可以出示您的授权码吗? 为了授权,我正在使用基本上生成 api 的 laravel/passport oauth/token 路由。我没有为此写任何东西。我用它在 oauth/token 路由调用时执行的方法编辑了我的问题。你可以看看 【参考方案1】:好的,我终于弄清楚了为什么会出现这个问题。我在 User.php 中有方法
public function setPasswordAttribute($password)
$this->attributes['password'] = bcrypt($password);
默认情况下会加密我的密码字段。
但是我忘记了,在数据库上保存密码时又在做加密
$user->password = bcrypt($request['password']);
所以它加密了两次。因此我无法匹配凭据。完全是我的错。
【讨论】:
以上是关于不断收到 401 未经授权的“无效凭据”Laravel Passport的主要内容,如果未能解决你的问题,请参考以下文章