使用zfcampus / zf-oauth2模块的用户身份验证

时间:2018-11-04 19:10:48

标签: php authentication oauth-2.0 zend-framework2 zend-framework3

我正在使用ZF3实现模块zfcampus / zf-oauth2。 记录的所有内容(https://github.com/zfcampus/zf-oauth2都按预期工作。

我想实现用户身份验证。

我发现此工作有'password'授予类型,但是该调用需要客户端应用程序ID和密码。

这是一个问题,因为如果我有一个第三方应用程序需要对用户进行身份验证,则我必须将用户重定向到登录表单并跟踪这些信息的唯一方法是将它们清晰地发送给客户端应用程序,也许作为查询字符串的一部分。

很明显我没有那样做。

所以问题是,使用提到的技术,是否可以使用不带'secret'参数的授权类型'password'进行呼叫? 还是有使用zf-oauth2模块实现用户身份验证的最佳实践?

谢谢

1 个答案:

答案 0 :(得分:0)

经过几个小时的研究,我认为我可以回答这个问题。 由于创建Oauth2是为了管理授权而不是身份验证,因此我在Oauth2服务器中创建了一个单独的控制器来管理身份验证。

此控制器将呈现一个登录表单,在提交时检查用户数据,然后将用户重定向到指定的第三方应用程序位置,如果身份验证通过,则仅带一个值。

接收到此事件后,通过积极的身份验证,第三方应用程序可以开始获取授权令牌的过程,并将“您要授权”页面呈现给用户。

我没有使用在此实现中实际上不必要的密码授予。

在用户授权后,第三方应用程序将获得可用于消耗受保护资源的令牌,例如,获取用户数据或令牌范围内的任何内容,这实际上是我的下一步研究。

我仍然愿意接受建议:)