与盒在iPad上的身份验证(Authentication with Box on iPad)

2019-10-16 18:44发布

我添加盒支持iPad应用程序。 我尝试了官方SDK,我不想使用它,原因如下:

  1. 登录页面太宽了,有模态控制器UIModalPresentationFormSheet iPad上的风格。 该SDK举办UIWebView它加载的内容https://m.box.net/api/1.0/auth/ ,这或许与最小宽度设置为768px返回HTML(虽然我没有检查HTML,这里猜测)。

  2. HTML在登录页面不显示谷歌Apps的身份验证选项。 页面的完整的桌面版本一样。

  3. 因为登录页面被托管UIWebView用户不能确信他提供的凭据框,而不是一个应用程序的作者。

  4. 我并不需要整个SDK的功能,只是验证,文件夹/文件列表和内容下载。 由于我的应用程序还使用其他云存储提供商我更愿意提供统一的文件浏览体验。

这就是我要做的事情:

  1. 添加自定义URL方案,我的应用程序,让我们说“的myapp”。

  2. 在盒子的应用程序设置为我的应用程序设置重定向URL以myapp://RedirFromBoxAuth

当用户选择从我的应用程序内浏览框,我要去:

  1. 通过调用买到票GET https://www.box.com/api/1.0/rest?action=get_ticket&api_key={API_KEY}

  2. 提取车票,然后调用openUrlhttps://www.box.com/api/1.0/auth/{TICKET}这将打开Safari浏览器,让用户输入他的凭据。 这是登录页面的完整,桌面版本。

  3. 在成功登录框的服务器会告诉Safari浏览器重定向到myapp://RedirFromBoxAuth?ticket={TICKET}&auth_token={TOKEN} ,这反过来会告诉iOS系统控制让给我的应用程序。

  4. 我的应用程序接收handleOpenURL通知,我可以提取认证令牌和使用REST API从现在开始。

请评论,这是一个好的计划? 我创建了一个快速原型,它似乎工作,但也许我失去了一些东西?

盒子的团队,你能不能告诉我们都将使用此身份验证模型的应用程序有资格列入OneCloud?

Answer 1:

这似乎是一个很好的策略,将可能实现比普通重定向一个更好的UX /更容易实现。 请让我们知道,如果你通过实施这种方式遇到任何奇怪的边缘情况。



文章来源: Authentication with Box on iPad
标签: box-api