我有一个允许用户拥有帐户的网站。第三方开发人员可以使用oauth2.0流程访问我网站上的用户帐户。
我正在构建一个iOS sdk,允许第三方开发人员实现oauth2.0流程以访问我的用户帐户。
我正在设想以下内容:
- iPhone应用中的用户点击按钮。
- 查看网页视图,访问mysite.com/oauth2(我的网站是oauth2.0流程页面)
- 登录/注册,然后点击授予访问权限(授予开发者访问我网站上的帐户的权限)。
- 网页视图重定向到带代码的网址
- 不知何故,系统使用该代码对我的网站进行api调用,以获取该用户的访问令牌,以便开发人员可以访问该用户的帐户。问题是开发人员需要使用他们的应用程序密钥进行此API调用,并且我不希望开发人员出于安全目的将应用程序密钥存储在应用程序中。
最后一步有两种可能性:
- Webview重定向到开发人员的服务器。 Developer Server获取代码,对我的服务器进行api调用以获取访问令牌,以便用户能够为他们创建帐户等,然后重定向回到url(“app:// access_token:....)” webview识别为关闭自己的信号。然后iPhone应用程序从该URL检索访问令牌。
醇>
或
- 用户点击授权访问后,Webview会重定向到随机网址。代码在url中。 Webview然后认识到URL中有代码。在父视图控制器中调用委托函数并将该函数传递给代码后关闭自身。然后,父视图控制器函数将该代码发送到开发人员服务器,该服务器对我的服务器(带代码)进行api调用以获取访问令牌。
醇>
实现上述目标的最佳方法是什么?