我正在使用流明和OAuth2-Server-Laravel by lucadegasperi
我已经成功设置了客户端凭据,并且可以在邮递员上发布:
grant_type - client_credentials
,client_id - id1
client_secret - secret1
并接收成功(200):
{"access_token":"jiKaracRLX1fOR0Ls3w7aE7G5ukblFIkkB2jwBGw","token_type":"Bearer","expires_in":3600}
作为响应。
...但是我现在完全迷路了。如何使用OAuth2添加用户名/密码方法?
我在文档中找到了Password Grant Type,但是我不知道下一步该怎么做。我是否需要创建另一个迁移表-用户?如果是这样,我将如何验证传递的变量?我感到困惑,因为它也需要我提供client_id
和client_secret
。
或者我应该通过发布请求在函数中接收username
和password
变量,并且在使用Guzzle验证控制器中的username
和password
之前,我应该验证client_id
和[C0 ],如果client_secret
为true,则继续登录。这种方法对吗?
说明:在完成配置并执行了护照迁移之后,您会看到在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 */ }