【问题标题】:Keep getting 401 unauthorized 'invalid credentials' Laravel Passport不断收到 401 未经授权的“无效凭据”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 路由调用时执行的方法编辑了我的问题。你可以看看

标签: php laravel laravel-5 oauth-2.0 laravel-passport


【解决方案1】:

好的,我终于弄清楚了为什么会出现这个问题。我在 User.php 中有方法

public function setPasswordAttribute($password)
{   
    $this->attributes['password'] = bcrypt($password);
}

默认情况下会加密我的密码字段。

但是我忘记了,在数据库上保存密码时又在做加密

$user->password = bcrypt($request['password']);

所以它加密了两次。因此我无法匹配凭据。完全是我的错。

【讨论】:

    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2017-01-10
    • 2012-04-20
    • 2017-04-17
    • 2017-10-07
    • 2018-10-23
    相关资源
    最近更新 更多