Facebook(或Twitter)移动APP的OAuth2实施?

时间:2014-12-18 16:20:00

标签: android ios oauth-2.0

对于误导性的标题感到抱歉,但我想这样做:

  1. 假设我有一个已经运行的网站 AwesomeWeb ,它使用用户名/密码组合对其用户进行身份验证。现在我想为它开发一个移动应用程序 AwesomeApp ,同时开发和开放其RESTful API - AwesomeAPI

  2. 为了简单起见,我计划使用OAuth2授权 AwesomeAPI ,并将 AwesomeApp 作为第一个客户端/应用程序。

  3. 但我 DO 希望 AwesomeApp 拥有一个简单的登录过程:输入用户名/密码 - >点击按钮 - >完成。换句话说,拥有一个非网络'感觉就像Facebook或Twitter一样。

  4. 对于那些希望通过 AwesomeAPI 访问资源(如用户名)的第三方移动应用,它应该在应用中的某个位置嵌入一个按钮,然后打开 AwesomeApp 显示'允许/拒绝'单击页面。再次,这就是Facebook和Twitter应用程序所做的事情。

  5. 好的,这里有问题:

    • 在第3步,我使用什么:webview或做http填充背景或只使用OAuth2密码授予类型?优点与缺点?
    • 在第3步之后,我获得了 AwesomeApp 的访问令牌。但是这个令牌 CAN NOT 在步骤4中用于为某些第三方应用程序发出访问令牌,我是对的吗?如果是这样,如何实现第4步?

    非常感谢你的帮助!

    注意:我没有要求OAuth2流程或应用内部通信。

1 个答案:

答案 0 :(得分:0)

无论您是否通过实施" Resource Owner Password Credentials"来实现第3步;在RFC 6749(OAuth 2.0)中定义的流程或其他方式,应在后台执行身份验证。请注意,在"资源所有者密码凭证"如果客户端应用程序不访问authorization endpoint但直接访问token endpoint,则不会显示授权UI(应该在授权端点显示)。

要实现第4步,您必须实施" Authorization Code"流动或" Implicit"流动。