我正在构建一个iOS应用程序,我需要能够向Rails3应用程序发出经过身份验证的请求,以获取各种数据。例如,Rails3应用程序使用omniauth和https://myapp.com/auth/facebook之类的URL来验证用户身份。一旦通过身份验证,就会将身份验证存储在名为“auth”的安全cookie中。
我想知道的是如何从iOS/iPhone应用程序对用户进行身份验证,持久化身份验证令牌,并将其与将来的请求一起发送到Rails应用程序?
使用ASIHTTPRequest我正在考虑这样做:
这种方法合适吗?有没有更好的方法?当然,如何实际实现上述内容呢?
谢谢- wg
发布于 2011-10-14 04:10:08
使用OAuth非常简单(好吧,简单不是一个词……),但是我做了一个iOS应用程序和一个java服务器,它们使用OAUth作为身份模式,按照整个周期,最后我获得了一个令牌来标识这个用户,并且(因为只有使用签名的请求才能访问)可以安全地存储在手机中(我只使用standardUserDefaults来存储它)。只有您的应用程序(使用密钥)才能对请求进行签名。
我不知道这对你是否有用..。
阿!在通过web进行身份验证之后,浏览器重定向一个特殊的url (为我的应用程序注册),该url将打开我的应用程序,并在其参数中包含令牌,因此在handleOpenURL中的身份验证阶段之后,很容易检索令牌。
发布于 2011-10-15 02:50:07
UIWebview
(例如:通过页面上的javascript,在authentication).UIWebViewDelegate
对象)webView shouldStartLoadWithRequest:(NSURLRequest *)request have这里你有了NSURLRequest
对象。您可以使用以下NSURLRequest
方法将请求的头部提取到NSDictionary
,其中包含身份验证cookie详细信息、令牌等
发布于 2011-10-10 18:22:41
对于我的应用程序,这就是我正在做的。
我的应用程序使用devise和omniauth进行登录和用户操作。Devise本身可以生成一个具有token_authenticatable标志的唯一令牌。因此,在我的登录请求中,如果登录成功,我会用我的用户和用户令牌的JSON表示来回复。我把所有这些都保存在手机内存里。
然后,对于每个请求,我添加参数auth_token=MY_USER_TOKEN。
仅此而已。
我只是遇到了Facebook身份验证的问题,因为我使用的是Ios facebook SDK,所以我将FB令牌转发到我的应用程序,验证它,然后为以下所有请求返回相同的devise auth_token。
https://stackoverflow.com/questions/7632185
复制相似问题