2012-03-18 106 views
0

我搜索了很久,但只能找到真正的基本信息,所以我決定在這裏問:安全認證:Rails的Web應用程序和iOS應用

簡單的事情是,我想對一個軌驗證iOS應用程序Web應用程序。 我想過基於HTTP Basic或Token的東西 - 但這不是我真正想要的。 我想從Facebook,Twitter等OAuth認證。 在軌道上,這非常簡單。使用omniAuth的設備可以很好地完成這項工作。 但是,我應該如何使用此方法驗證iOS應用程序?

如果有人能夠更詳細地瞭解如何做到這一點,那將是一件好事。

回答

1

我想你有兩個解決方案。

1:WebView

使用WebView進行OAuth請求/響應。

SHKOAuthView ShareKit將幫助你理解。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{  
    // "OAUTH_DID_FINISH_SUCCESS_URL" is URL your wab app display after finishing OAuth authentication successfully. 
    if ([request.URL.absoluteString isEqualToString:OAUTH_DID_FINISH_SUCCESS_URL]) 
    { 
     // OAuth success 
     return NO; 
    } 
    return YES; 
} 

整理與web視圖OAuth認證後,iOS應用自動保存的Cookie(如果web應用程序保存的Cookie),所以iOS應用可以正常請求/響應於網絡應用程序。順便提一句,Android可能不會自動保存cookie,因此如果您還必須支持Android應用程序,基於標記的身份驗證會更好。

2:RestKit

RestKit支持的OAuth。

我認爲設備不是iOS應用程序使用OAuth的最佳解決方案。 我認爲使用omniAuth的臨時認證更好。

+0

這隻解決了問題的一部分。但對於通過OAuth進行身份驗證,我需要自己成爲OAuth Provider,還是我錯了? 有了您的解決方案,我可以驗證對OAuth用戶提供iOS設備 - 但我需要驗證我的Web應用程序針對的OAuth提供者和反對我的Web應用程序驗證自己的iOS設備 例子: 'Twitter的Web應用程序<-> iOS版<-> App' – PascalTurbo 2012-03-19 18:26:55

+0

我用了第一個解決方案(1:WebView)。我的網絡應用程序(Rails 3.1)是[SingSing](http://www.singsing.biz/)。我的iOS應用程序是[A Cappella LITE](http://itunes.apple.com/us/app/acappellalite/id370754632?mt=8)。 – dadachi 2012-03-20 01:08:05

+0

是的,那太棒了。但你如何解決Rails-Part? – PascalTurbo 2012-03-20 08:20:36