web-dev-qa-db-de.com

Laravel Passport - Grant-Typ wird nicht unterstützt

Ich habe Laravel Passport per Dokumentation installiert und alle erforderlichen Bereiche meines Codes geändert. 

Ich arbeite an der Einrichtung von Password Grant Token, damit Benutzer ein API-Token erhalten können, wenn sie sich mit ihrem Benutzernamen und Passwort für die Site anmelden. Ich stoße jedoch auf ein Problem, wenn es sich um Grant_type handelt . Aus irgendeinem Grund beschwert sich Laravel über einen ungültigen Grant-Typ.

{
  "error": "unsupported_grant_type",
  "message": "The authorization grant type is not supported by the authorization server.",
  "hint": "Check the `grant_type` parameter"
}

Dies sind die Felder, die ich an /oauth/token poste.

client_id = 4
client_secret = SMiYE7XqDNtXKQnmkYmFnXxfAaV83vRhnJ9zwCtZ
username = [email protected]
password = **************
grant_type = password
scope = *

Ich habe php artisan passport:install ausgeführt und habe auch versucht, php artisan passport:client --password auszuführen.

Beide Befehle funktionierten und erstellten sowohl den Client als auch die Geheimnisse. Allerdings scheint es mir nicht möglich zu sein, den Fehler bezüglich des Grant-Typs zu umgehen.

Irgendwelche Vorschläge, worauf ich achten muss, um dieses Problem zu lösen, damit die Password Grant-Token für mich funktionieren?

14
Joseph Crawford

Es scheint, dass Sie die Parameter als Formulardaten senden müssen und nicht in den Kopfzeilen, wie ich es getan habe ... Anfängerfehler!

24
Joseph Crawford

Ich verwende Postman und habe alle Parameter in Params eingegeben. Postbote zeigt die folgende Antwort

{
    "error": "unsupported_grant_type",
    "message": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check the `grant_type` parameter"
}

Jetzt füge ich alle Parameter in Body ein und drücke die Send-Taste. Es funktioniert gut.

4
Muhammad Hashim

Ursprüngliche URL

https://restfulapi.test/oauth/authorize?client_id=3&redirect_url=http://restfulapi.test?response_type=code

Lösung

https://restfulapi.test/oauth/authorize?client_id=3&redirect_url=http://restfulapi.test&response_type=code

Ich musste das Fragezeichen vor response_type durch den & ersetzen.

0
MT_Shikomba