Laracastに記載されている正確な手順に従いました: What's New in Laravel 5.3: Laravel Passport to implement api authentication
using oauth2
.
web.php
client/consumer プロジェクトの私のファイルは次のようになります。
use Illuminate\Http\Request;
Route::get('/', function () {
$query = http_build_query([
'client_id' => 2,
'redirect_uri' => 'http://offline.xyz.com/callback',
'response_type' => 'code',
'scope' => '',
]);
return redirect ('http://api.xyz.com/oauth/authorize?'.$query);
});
Route::get('/callback', function (Request $request){
$http= new GuzzleHttp\Client;
$response = $http->post('http://api.xyz.com/oauth/token',[
'form_params' => [
'grant_type' => 'authorization_code',
'client_id' => 2 ,
'client_secret' => 'tUGYrNeWCGAQt220n88CGoXVu7TRDyZ20fxAlFcL' ,
'redirect_uri' => 'http://offline.xyz.com/callback',
'code' => $request->code,
],
]);
return json_decode((string) $response->getBody(), true);
});
authorize
クライアントが API にアクセスできるようにする必要があるアクセス許可要求ページを取得しています。しかし、承認をクリックすると、次のメッセージが表示されるページにリダイレクトされます。
{"error":"invalid_client","message":"Client authentication failed"}
これを解決するには?
laravel/passport
オフライン プロジェクトにはインストールしませんでした。私は何かを逃していますか?ビデオチュートリアルで言及されていることを正確に実行し、実装しました。私が気付いていない他の何かを含める必要がありますか?(私は oauth2 に関する非常に基本的な知識を持っています)。
それが役立つ場合は、インターネット接続があるときにオンライン システムに定期的にデータを送信するオフライン システムを実装しようとしています。そのため、保存する情報を含むリクエストを作成しapi
て送信できると考えました。post