私はlaravelで遊んでいて、クライアント資格情報の付与を有効にして、いくつかのAPIエンドポイントを保護しようとしています。
いくつかのコンテキストを提供するには: データベースといくつかの Web サイト (および SPA) の間に立つ API を作成したいと考えています。したがって、いくつかの監視(どのWebサイト/ SPAがどのリソースを呼び出すか)を実行し、一般にセキュリティを追加できます。したがって、追加のユーザー情報が必要ないこの場合、マシン間通信のためのクライアント資格情報の付与が最善の方法です。
これらの許可タイプを実装するために誰かのチュートリアル (例:このチュートリアル) に従いましたが、行き詰まりました...
私は次のことをしました:
- パスポートをロード:
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
in に設定しますconfig/auth.php
ここまでは順調ですね。次に、次のサンプル クライアントを作成しましたphp artisan passport:client
。
New client created successfully.
Client ID: 3
Client secret: S5s9oEIRm5DNy5ySsr1H6jWlraOCZyF24gcpoDrJ
postman を使用してこのクライアントのトークンを取得したい場合 (ここで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
?を登録するために必要なすべての手順を実行したと思います。
前もって感謝します!!