Laravel和OAuth2的流明-授予类型:客户端凭据有效,但如何正确使用用户名/密码方法

问题描述 投票:2回答:1

我正在使用流明和OAuth2-Server-Laravel by lucadegasperi

我已经成功设置了客户端凭据,并且可以在邮递员上发布:

grant_type - client_credentialsclient_id - id1client_secret - secret1并接收成功(200):

{"access_token":"jiKaracRLX1fOR0Ls3w7aE7G5ukblFIkkB2jwBGw","token_type":"Bearer","expires_in":3600}作为响应。

...但是我现在完全迷路了。如何使用OAuth2添加用户名/密码方法?

我在文档中找到了Password Grant Type,但是我不知道下一步该怎么做。我是否需要创建另一个迁移表-用户?如果是这样,我将如何验证传递的变量?我感到困惑,因为它也需要我提供client_idclient_secret

或者我应该通过发布请求在函数中接收usernamepassword变量,并且在使用Guzzle验证控制器中的usernamepassword之前,我应该验证client_id和[C0 ],如果client_secret为true,则继续登录。这种方法对吗?

php laravel oauth oauth-2.0 lumen
1个回答
0
投票
https://github.com/dusterio/lumen-passport#configuration

说明:在完成配置并执行了护照迁移之后,您会看到在oauth_clients表中生成了两个记录,请注意,一个记录选择了person_access_client列,另一记录选择了password_client列。

选择了personal_access_client的记录将为grant_type = client_credentials使用相应的秘密。这将返回应用程序的承载令牌。

选择了password_client的记录,您将使用对应的密码,用于grant_type = password。这将为用户返回一个承载令牌(您也需要发送用户名和密码)。

您不需要在用户模型中做我上面解释的任何事情,因为护照将自行完成其余工作。

配置不正确且测试有效后,您需要包括中间件身份验证以使应用程序独立运行。这些路由的请求标头中必须包含令牌。

use Laravel\Lumen\Auth\Authorizable; use Laravel\Passport\HasApiTokens; use Illuminate\Auth\Authenticatable; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasApiTokens, Authenticatable, Authorizable; /** functions */ }

© www.soinside.com 2019 - 2024. All rights reserved.