我正在为基于 Web 的自定义社交网络应用程序开发本机移动应用程序。我们正在构建一个 REST API 来与 Web 服务器进行通信,并且我们选择了 OAuth2 作为身份验证方法(grant_type=password
流程)。
该网络应用程序允许用户使用外部服务(即 Facebook 和 Twitter)登录和注册。我们需要在移动应用程序上也允许这样做。问题是:我们怎样才能做到这一点?
Pinterest 移动应用程序能够管理这种情况(见附图)。这里使用的流程是什么?
它们的行为是否像经典的 OAuth 驱动的应用程序(移动应用程序直接与 Facebook API 一起充当 OAuth 客户端?)。如果是这样,那么如何通过 Pinterest 服务器对移动应用进行身份验证?它是否将 Facebook OAuth 访问令牌作为凭据传递?
问题的图形表示(参见 -????
标记的箭头):
Website API Mobile app Facebook OAuth
+ + +
| | |
| | /oauth2/token |
| +------------------------------>|
| | |
| | OAuth Access Token |
| |<-----------------------------+|
| | |
| ???? | |
|- - - - - - - - - - - - - -| |
| | |
| | |
| OAuth Access Token | |
|+------------------------->| |
| | |
| | |
| API Usage (w/ token) | |
|+------------------------->| |
|<-------------------------+| |
| | |
|+------------------------->| |
|<-------------------------+| |
| | |
| ... | |
+ + +
更新: 这个问题和我的很相似。如果这是正确的路径,那么第二+第三步(将 Facebook 令牌传输到我们的自定义 API,加上令牌本身的验证)就不可能了额外的 OAuth2 授权类型(即。facebook_token
)?