我是OAuth的新手。我正在尝试实施https://github.com/lucadegasperi/oauth2-server-laravel#password-flow
我已将id
和secret
插入oauth_clients
表格。我还在users
表中插入了用户名和密码。 (通过Phpmyadmin)
我尝试完成请求后:
POST http://localhost:8000/oauth/access_token?
grant_type=password&
client_id=weredfsdfsrq341&
client_secret=dfwefsdf&
username=test@test.com&
password=123456
但回应是:
{
error: "invalid_request"
error_description: "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. Check the "client_id" parameter."
}
我的路线是
Route::post('oauth/access_token', function()
{
return AuthorizationServer::performAccessTokenFlow();
});
我做错了什么?
答案 0 :(得分:1)
不确定您是否找到了答案,但是,这是此处讨论的软件包中的错误Here
基本上,当内容类型为json时,包不能正确处理参数。
固定:
在vendor / lucadegasperi / oauth-server-laravel / src / OAuth2ServerServiceProvider.php中找到$authorizer->setRequest($app['request']);
并在其上方添加
$app['request']->replace(\Input::all());
答案 1 :(得分:0)
请确保内容类型设置为" x-www-form-urlencoded"当你进行POST时。
答案 2 :(得分:0)
我可能错了,但我认为你错过了参数scope
。只是一个猜测。