我正在玩 laravel 并尝试启用客户端凭据授予来保护一些 api 端点。
提供一些上下文: 我想创建一个位于数据库和多个网站(和 SPA)之间的 api。因此,我将能够进行一些监控(哪些网站/SPA 调用哪些资源),并且通常会增加一些安全性。因此,在这种不需要额外用户信息的情况下,机器对机器通信的客户端凭据授予应该是最好的方法。
我按照某人的教程(例如this tutrial)来实现这些授权类型,但我被卡住了......
我做了以下事情:
- 加载护照:
composer require laravel/passport
- 将服务提供商添加到
config/app.php
:Laravel\Passport\PassportServiceProvider::class,
- 迁移:
php artisan migrate
- 安装:
php artisan passport:install
- 添加
HasApiTokens
到App\User.php
- 添加
Passport::routes()
到app/Providers/AuthServiceProvider.php
- 最后但并非最不重要的一点是将身份验证防护的驱动程序选项设置为
passport
inconfig/auth.php
到目前为止,一切都很好。现在我创建了一个示例客户端php artisan passport:client
:
New client created successfully.
Client ID: 3
Client secret: S5s9oEIRm5DNy5ySsr1H6jWlraOCZyF24gcpoDrJ
现在,当我想通过使用邮递员(在此处body.formdata
提供的类似内容中添加)
为该客户端获取令牌时
我收到以下错误。
{
"error": "unsupported_grant_type",
"error_description": "The authorization grant type is not supported by the authorization server.",
"hint": "Check that all required parameters have been provided",
"message": "The authorization grant type is not supported by the authorization server."
}
我错过了什么吗?我以为我做了所有必要的步骤来注册grant type
?
提前致谢!!