首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel invalid_grant grant_type密码

Laravel invalid_grant grant_type密码
EN

Stack Overflow用户
提问于 2020-02-08 03:11:44
回答 3查看 9.4K关注 0票数 5

我一直试图为我的api创建一个access_token。我已经使用按照设置,并且正在使用邮递员测试/创建一个令牌。我似乎无法克服invalid_grant错误。

我已经尝试了所有我能找到的没有任何运气的组合。这是我的设置:

POST请求发送到:http://mywebsite.local/oauth/token

在正文中,我将form-data设置为以下(名称/值):

代码语言:javascript
复制
grant_type      password
client_id       1
client_secret   <super_long_string>
username        my@email.com
password        secret

我使用tinker创建了一个虚拟用户:

代码语言:javascript
复制
factory('App\User')->create()

我将新创建的用户用于上面的用户名/密码。

不管我在做什么(除了没有传递任何东西),这是我经常看到的错误:

代码语言:javascript
复制
{
    "error": "invalid_grant",
    "error_description": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.",
    "hint": "",
    "message": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."
}

我已经读过很多次了,这意味着我试图获得的grant_type与客户端不匹配。我使用php artisan passport:client --password来创建客户机,所以我不明白它为什么无效。我只有一个客户端,所以我知道我使用的是正确的id这个问题似乎是一样的,我看到了,但后来被关闭了。

对于我的标题,我只设置Content-Type application/json,而授权头没有设置任何设置。

我不知道还能尝试什么。谢谢您的建议!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-12 15:25:35

正如所述的这里,从5.8版本的默认密码“机密”已经更新为“密码”。所以你要输入旧密码。

票数 7
EN

Stack Overflow用户

发布于 2020-04-24 12:10:43

尝试为用户散列密码。首先,我认为密码至少需要8个字符长。然后,例如,如果您使用"test1234“作为创建用户的密码,请转到您的终端并键入:

php工匠修补工 回声bcrypt('test1234')

复制输出并将其保存在您创建的用户的密码数据库列中,而不是test1234。现在,您对http://mywebsite.local/oauth/token的帖子请求应该可以工作了。

票数 3
EN

Stack Overflow用户

发布于 2021-11-08 09:46:35

我在laravel 8中遇到了同样的问题,我通过重新安装laravel passport来解决这个问题。

这些步骤如下:

1-在AuthServiceProvider.php中注释这一行

代码语言:javascript
复制
if (! $this->app->routesAreCached()) {       
   //Passport::routes();
}

2-在composer.json中删除以下一行:

代码语言:javascript
复制
 "laravel/passport": "^xx.x",

3-运行以下命令:

代码语言:javascript
复制
composer dump-autoload
composer update
php artisan migrate:fresh

现在我们要安装laravel passport 4的-运行以下命令:

代码语言:javascript
复制
composer require laravel/passport
php artisan migrate
php artisan passport:install --force

5-在AuthServiceProvider.php中添加以下行:

代码语言:javascript
复制
use Laravel\Passport\Passport;
class AuthServiceProvider extends ServiceProvider
{
    protected $policies = [
        'App\Models\Model' => 'App\Policies\ModelPolicy',
    ];

    public function boot()
    {
        $this->registerPolicies();

        if (! $this->app->routesAreCached()) {
            
            Passport::routes();
        }
    }
}

6-在config\auth.php中添加以下代码:

代码语言:javascript
复制
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

完成这些步骤之后,laravel-passport运行良好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60123601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档