Sie müssen zuerst in der API authentifizieren die bekommen Token und senden Sie dann jede andere Anfrage mit diesem Token.
Beispiele mit Curl: erste
Authentifizierung:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://laravel-app-with-passport.com/api/someurl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_POSTFIELDS => null, // here you can send parameters
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: " . $_SESSION['TOKE_TYPE'] . " " . $_SESSION['TOKEN'] . "",
"cache-control: no-cache",
"content-type: application/json",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
var_dump($response);
auch:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://laravel-app-with-passport.com/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "grant_type=password&client_id=".$outhCliendIdGeneratedInLaravelPassport ."&client_secret=".$OuthClientSecretGenerateInLaravelPassport ."&username=". $validLaravelUserName . "&password=" . $validLaravelUserPassword,
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"content-type: application/x-www-form-urlencoded",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
$responseInfo = curl_getinfo($curl);
curl_close($curl);
if ($err) {
set_error_handler($err);
} else {
if ($responseInfo['http_code'] == 200) {
$_SESSION['TOKEN'] = json_decode($response)->access_token;
$_SESSION['TOKE_TYPE'] = json_decode($response)->token_type;
} else {
set_error_handler("Login to api faild status 403");
error_log("No login api status 403");
}
}
Dann können Sie das Token und verbrauchen jede URL in der api senden Wie bereits erwähnt, können Sie anstelle von Curl Guzzle HTTP Client verwenden (https://github.com/guzzle/guzzle)
https://laravel.com/docs/5.5/passport#consuming-your-api-with-javascript "Diese Passport-Middleware fügt Ihren ausgehenden Antworten einen Laravel_Token-Cookie hinzu. Dieser Cookie enthält eine verschlüsselte JWT, die Passport zum Authentifizieren von API-Anfragen aus Ihrer JavaScript-Anwendung verwendet. Jetzt können Sie Anfragen an die API Ihrer Anwendung senden, ohne explizit ein Zugriffstoken zu übergeben. " – ceejayoz
Aber wenn ich eine andere App verwende, um den Laravel-API-Pass zu verwenden, wie kann ich diese Parameter senden? –