2012-05-31 50 views
1

我將Box支持添加到iPad應用程序中。我嘗試了官方SDK,我不想使用它,原因如下:在iPad上使用Box進行身份驗證

  1. 登錄頁面是與iPad上UIModalPresentationFormSheet風格模態控制器太寬。 SDK主機UIWebView加載內容https://m.box.net/api/1.0/auth/,這可能會返回HTML最小寬度設置爲768px(儘管我沒有檢查HTML,在這裏推測)。

  2. HTML在登錄頁面不顯示谷歌Apps的身份驗證選項。該頁面的完整桌面版本的確如此。

  3. 由於登錄頁面託管在UIWebView中,用戶無法確定他是否將憑據提供給Box,而不是應用程序作者。

  4. 我並不需要整個SDK的功能,只是驗證,文件夾/文件列表和內容下載。由於我的應用程序也使用其他雲存儲提供商,我寧願提供統一的文件瀏覽體驗。

這就是我要做的事情:

  1. 添加自定義URL方案,我的應用程序,讓我們說 「的myapp」。

  2. 在我的應用程序設置重定向URL來myapp://RedirFromBoxAuth Box的應用程序設置。

當用戶選擇從我的應用程序內瀏覽框,我要:通過調用GET https://www.box.com/api/1.0/rest?action=get_ticket&api_key={API_KEY}

  • 提取ticket

    1. 買到票,然後調用openUrlhttps://www.box.com/api/1.0/auth/{TICKET}這將打開Safari並讓用戶輸入他的憑據。這是登錄頁面的完整桌面版本。

    2. 成功登錄Box的服務器會告訴Safari重定向到myapp://RedirFromBoxAuth?ticket={TICKET}&auth_token={TOKEN},這反過來會告訴iOS對我的應用程序產生控制權。

    3. 我的應用程序接收handleOpenURL通知,我可以提取認證令牌和使用REST API從現在開始。

    請評論,這是一個很好的計劃嗎?我創建了一個快速原型,它似乎工作,但也許我錯過了什麼?

    箱隊,請你告訴我們將使用這種身份驗證模式的應用程序有資格列入OneCloud?

  • 回答

    1

    這似乎是一個很好的策略,將可能實現比普通重定向一個更好的UX /更容易實現。請通過這種方式實施它,讓我們知道是否遇到任何奇怪的邊緣案例。