【问题标题】:problems with oauth2-server-laraveloauth2-server-laravel 的问题
【发布时间】:2018-05-25 08:43:25
【问题描述】:

我是 OAuth 新手。我正在尝试实现https://github.com/lucadegasperi/oauth2-server-laravel#password-flow

我已经将idsecret 插入到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();
});

我做错了什么?

【问题讨论】:

  • 同样的问题,你有解决办法吗?我正在将 v1 升级到 v3
  • 遇到同样的问题:“请求缺少必需的参数,包含无效的参数值,包含不止一次的参数,或者格式错误。请检查“grant_type”参数。”尝试更改为 x-www,结果相同

标签: php laravel oauth


【解决方案1】:

不确定您是否找到了这个问题的答案,但是,这是包中的一个错误,正如这里所讨论的 Here

基本上,当内容类型为 json 时,包不会正确处理参数。 使固定: 在 vendor/lucadegasperi/oauth-server-laravel/src/OAuth2ServerServiceProvider.php 中找到 $authorizer->setRequest($app['request']); 并添加这一行就在它上面

 $app['request']->replace(\Input::all());

【讨论】:

    【解决方案2】:

    请确保在发布该 POST 时将内容类型设置为“x-www-form-urlencoded”。

    【讨论】:

    • 如何将如此获得的 access_token 存储到变量中?
    【解决方案3】:

    我可能错了,但我认为您错过了参数scope。只是猜测。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-24
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 2021-03-04
      • 2019-11-15
      相关资源
      最近更新 更多