安全身份验证:Rails WebApp和iOS App

时间:2012-03-18 18:33:52

标签: ruby-on-rails ios authentication oauth

我搜索了很长时间,但只能找到真正基本的信息,所以我决定在这里问:

简单的说法是,我想针对rails web应用程序对iOS应用程序进行身份验证。 我想过基于HTTP Basic或Token的东西 - 但这不是我真正想要的。 我想通过Facebook,Twitter等对OAuth进行身份验证。 在轨道方面,这非常简单。使用omniAuth的设备完成了这项工作。 但是如何使用此方法验证iOS应用程序?

如果有人能够就如何做到这一点提供更详细的观点,那就太棒了。

1 个答案:

答案 0 :(得分:1)

我认为你有两个解决方案。

1:WebView

使用WebView进行OAuth请求/响应。

ShareKit的{p> SHKOAuthView将有助于您的理解。

- (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;
}

使用WebView完成OAuth身份验证后,iOS应用程序会自动保存cookie(如果是网络应用程序保存cookie),因此iOS应用程序可以正常请求/响应Web应用程序。顺便提一下,Android可能无法自动保存cookie,因此如果您还必须支持Android应用程序,则基于令牌的身份验证会更好。

2:RestKit

RestKit支持OAuth。

我认为Device不是OAuth的iOS应用程序的最佳解决方案。 我认为使用omniAuth进行临时认证更好。