首页 文章

创建自定义OAuth2授权类型

提问于
浏览
2

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

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

1 回答

  • 1

    根据http://tools.ietf.org/html/rfc6749上的规范使用OAuth 2.0 "Resource Owner Password Credentials Grant" . 您的用户ID是电话号码,密码是您发送的8位数确认码 .

    注册电话号码的呼叫显然不应该被认证,这将导致发送SMS .

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

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

相关问题