php - 如何使用 oauth2-server-laravel

标签 php laravel oauth

我正在使用 oauth2-server-laravel包,我是oauth的新手。我正在尝试实现 Password Flow这个库的方法。我对如何提供 client_id 和 client_secret 感到困惑。

这是我的路线:

Route::post('oauth', function()
{
    return AuthorizationServer::performAccessTokenFlow();
});

这给出了响应——

{
    "error": "invalid_request",
    "error_description": "The user credentials were incorrect."
}

我已经从 mysql 中插入了 client_id 和 client_secret。还播种了用户表。

那么,为什么这会在响应中显示错误?我做错了什么?

最佳答案

对于想要使用用户名而不是电子邮件(这是他们文档中宣传的方法)的新手,请在您的 oauth2.php 中更改为以下内容:

'grant_types' => [
    'password' => [
    'class' => '\League\OAuth2\Server\Grant\PasswordGrant',
    'callback' => function($username, $password) {
        if( Auth::validate([
            'name'    => $username,
            'password' => $password,
        ])){
              $user = \App\User::where('name',$username)->first();
              return $user->id;
          } else {
              return false;
          }
    },
    'access_token_ttl' => 3600
   ]
]

关于php - 如何使用 oauth2-server-laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127318/

相关文章:

laravel - Eloquent :如何在不删除任何内容的情况下同步一对多关系(FK 可为空)?

php - Laravel Eloquent : n+1 accessing related model via accessor

php - 将多个 oauth 帐户链接到单个用户 : what's considered safe practice and what's not?

oauth - 如何在 SPA 中实现 Docusign 而无需最终用户使用 DocuSign 进行身份验证

php - 使用 Jquery 显示上传传输时间?

javascript - 使用Ajax从javascript发送数组到php,不使用表单

php - 当我将我的 webapp 上传到 linux 服务器时,laravel 页面不工作

ruby-on-rails - 带有 omniauth linkedin Ruby gem 的大型个人资料图片

php - 在 mysql 中与 2(varchar 列)建立关系时出错

c# - 从 C# 到 PHP 的 HMACSHA1