创建自定义OAuth2授权类型

时间:2014-09-12 09:31:46

标签: php oauth-2.0 restful-authentication

我正在为手机构建应用。授权过程需要采用以下方式。当用户未登录时,将要求他输入电话号码(如WatsApp,Viber等),并在输入电话号码后,将使用8位确认码向用户发送短信。当用户输入代码时,将为他创建OAuth2访问令牌和刷新令牌,并从数据库中删除8位数的确认代码。如果用户退出,他需要再次执行相同的过程。

我想使用密码授权方法,因为我是资源所有者。但是,由于我在身份验证过程中没有密码,因此我不知道为他创建令牌的参数。创建新的oauth2授权类型是一个好习惯 - 称之为“confirmation_code”,其参数是client_id,client_secret,username和confirmation_code?

1 个答案:

答案 0 :(得分:1)

根据http://tools.ietf.org/html/rfc6749上的规范使用OAuth 2.0“资源所有者密码凭据授予”。您的用户ID是电话号码,密码是您发送的8位数确认码。

注册电话号码的呼叫,显然不应该发送短信。

或者,使用正常的“授权代码授权”。在登录页面上,让用户完成所需的步骤。首先询问电话号码并发送短信。然后询问确认码。这可能具有一些安全优势。与上述方法的主要区别在于,(部分)UI由授权服务器作为HTML提供,而使用密码凭证grant,所有UI均由应用程序(OAuth客户端)提供。

请注意,在授权服务器提供的页面上,您可以启用多种身份验证方法。例如,您可以提供输入普通密码的功能,如果没有输入密码,则只能发送短信。由于这是一个普通的Web应用程序,您基本上可以自由地在Web应用程序中执行任何操作。授权服务器仅在授权服务器重定向回客户端应用程序时完成。

相关问题