我正在努力使用OAuth2授权,身份验证和用户链接。 到目前为止我做了什么:
我创建了一个客户端,这是秘密。 所有重定向等都在工作。授权类型密码适用于自己的原生应用(例如Android和iOS)
但是对于访问令牌,如果授权类型是授权代码,则user_id
为NULL
。
如何指定用户访问令牌或授权代码?
是否有Apigility模块提供登录屏幕?我只被要求“允许”或“禁止”申请,但我从未被要求提供用户名和密码。
更新
问题与提供OAuth2访问第三方网页有关,例如IFTTT。他们打开/oauth/authorize
页面并在某个地方指导用户登录?!确定相关用户?是否有现有模块?
第三方网站,例如出于安全原因,IFTTT不使用密码授予类型。与其他页面相比,工作流程是:用户是否经过身份验证?是:显示接受/拒绝按钮。否:用户必须登录,然后将重定向到/ oauth / authorize页面。那么在apigility中是否有一种常见的方法来检查用户是否已登录,如果没有,则重定向到登录掩码?
答案 0 :(得分:1)
要使用OAuth2使用用户名和密码进行身份验证,您应该使用grant_type=password
。
我不确定Apigility中是否有登录屏幕。但我不认为应该拥有它,因为Apigility已经通过OAuth2允许一个或多个端点,更具体地说是OAuth2 Server Library for PHP。
如何操作
oauth_clients.grant_types
列)上设置"password"
。如下所示在认证网址上创建帖子。
url=localhost:8080/oauth
,其中localhost:8080
是运行apigility的地方,/oauth
是已配置的身份验证适配器网址。有效载荷:
{
"username": "USERNAME",
"password": "PASSWORD",
"grant_type": "password",
"client_id": "CLIENT_ID"
}