Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 继续获取未经授权的401';无效凭证';拉威尔护照_Php_Laravel_Laravel 5_Oauth 2.0_Laravel Passport - Fatal编程技术网

Php 继续获取未经授权的401';无效凭证';拉威尔护照

Php 继续获取未经授权的401';无效凭证';拉威尔护照,php,laravel,laravel-5,oauth-2.0,laravel-passport,Php,Laravel,Laravel 5,Oauth 2.0,Laravel Passport,我已经通过seeders生成了一些演示用户。我可以通过oauth/token登录这些用户。但当我创建新用户时。我不能再登录了。它总是给我401个未经授权的“无效凭证”。我做了所有的研究。我正在通过邮递员进行测试,我完全不知所措。这是我的注册方法: $user = new User; $user->name = ucfirst($request['name']); $user->email = $request['email']; $user->password = bcrypt

我已经通过seeders生成了一些演示用户。我可以通过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 passport提供的oauth/令牌路由中过帐时执行的方法:

public function issueToken(ServerRequestInterface $request)
    {
        return $this->withErrorHandling(function () use ($request) {
            return $this->convertResponse(
                $this->server->respondToAccessTokenRequest($request, new Psr7Response)
            );
        });
    } 

请帮帮我

好的,我终于明白了为什么会有这个问题。我在User.php中有一个方法

public function setPasswordAttribute($password)
{   
    $this->attributes['password'] = bcrypt($password);
}
这是默认情况下加密我的密码字段

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

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

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

好的,我终于明白为什么会有这个问题了。我在User.php中有一个方法

public function setPasswordAttribute($password)
{   
    $this->attributes['password'] = bcrypt($password);
}
这是默认情况下加密我的密码字段

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

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

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

我想你已经检查了数据库,以确保用户的注册和存储正确吗?当然可以!我已经做了所有可能的事情,但仍然没有线索。你能显示你的授权代码吗?好的,对于授权,我使用laravel/passport oauth/token route,它基本上生成api。我没有为此写任何东西。我用它在oauth/令牌路由调用时执行的方法编辑了我的问题。你可以看一看我假设你已经检查了数据库,以确保用户的注册和存储是正确的?当然可以!我已经做了所有可能的事情,但仍然没有线索。你能显示你的授权代码吗?好的,对于授权,我使用laravel/passport oauth/token route,它基本上生成api。我没有为此写任何东西。我用它在oauth/令牌路由调用时执行的方法编辑了我的问题。你可以看看