21
votes

I have installed Laravel Passport per the documentation and I have modified all areas of my code that is required.

I am working on setting up Password Grant Tokens so that users will be able to get an API token when logging in with their username and password for the site. I am hitting an issue though when it comes to the grant_type. For some reason Laravel is complaining about an invalid grant type.

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

These are the fields that I am posting to /oauth/token

client_id = 4
client_secret = SMiYE7XqDNtXKQnmkYmFnXxfAaV83vRhnJ9zwCtZ
username = jcrawford@domain.com
password = **************
grant_type = password
scope = *

I have run php artisan passport:install and I have also tried running php artisan passport:client --password

Both commands worked and both created the client and secrets, however, I cannot seem to get past the error about the grant_type.

Any suggestions on what I should look at to get this solved so that Password Grant Tokens will work for me?

4

4 Answers

42
votes

It appears that you must send the parameters as form data and not in the headers like I was doing... Rookie Mistake!

9
votes

I'm using Postman and I have put all parameters in Params. Postman shows the following response

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

Now I put all parameters in Body and then press the Send button, It's working well.

1
votes

For me the problem was that i wasnt using Request $request, i was using RegisterRequest $request which i had created.

0
votes

Initial URL

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

Solution

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

I had to replace the question mark before response_type with the &