2017-10-19 37 views
0

私はapiのように動作するようにLaravel Passportを設定していますが、oauth/tokenでトークンデータを取得しても、カールで使用することはできません。Laravel Passportでトークン認証を使用することはできません

私は接続するためにcurlを使用しています。接続するアプリケーションのほとんどはすでに作成されており、それらの多くは基本的なPHPを使用しているからです。

次のコードは、私のlaravelアプリケーションからtoken_typeとaccess_tokenを取得します。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:8000/oauth/token"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("X-Requested-With: XMLHttpRequest")); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

$postData = array(
    'client_id' => '6', 
    'client_secret' => 'Cprp9HPTYO7CsZRvv4A8MizNj9h1nLjyF6J1sElZ', 
    'grant_type' => 'client_credentials', 
    'scope' => '*' 
); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 
$ans = json_decode(curl_exec($ch)); 

しかし、私はページに接続するためにトークンデータを使用しようとすると、私は常にメッセージを取り戻すには、{"message":"Unauthenticated."}

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:8000/api/test"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest', 
    'Accept: application/json', 
    'Authorization: {$ans->token_type} {$ans->access_token}', 
    )); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

print_r(curl_exec($ch)); 

私のルートが/ api.phpはかなり基本的なものです

Route::get('/test', function() { 
    return "Yes! We're testing!!"; 
})->middleware('client'); 

ミドルウェア部分を削除すれば接続できます。だから、私は認証について間違って何をしていますか?

答えて

1

実際の変数が解析されないように、一重引用符で囲まれた文字列内の変数を使用しています。値を補間したい場合は、二重引用符を使用する必要があります。

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest', 
    'Accept: application/json', 
    "Authorization: {$ans->token_type} {$ans->access_token}", 
)); 
+0

すみません、私は恥ずべきで頭を下ろす必要があります。 – Califer

関連する問題