2011-08-17 51 views
0

我創建一個會話,將用戶標識和密碼傳遞給Rails 3.0服務器。
Rails 3.0 iPhone會話

- (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)response  

我從響應allHeaderFields字典,它有一個「設置Cookie」的價值。

"Set-Cookie" = "_quest_svr_session=BAh7ByIPc2Vzc2lvbl9pZCIlNDRmOTUyZmI2OTZlZTIzMDdlZDg2ZmI5ZTZhM2E4YTA6E3JlbWVtYmVyX3Rva2VuWwdpBiJFMDE1ZjE5OWJkMzU2YzMwNzE2ZjAxMTVhMzI4OTI0MzY3ODU0OTJmZTIyZmE3ZDFmZjdhM2ZiMDdlODFhZWZjMA%3D%3D--38aa7c663ccf53ddd39a0ded89c6f87da5b2abad; path=/; HttpOnly"; 

我存儲在

NSString * session_token =[dictionary objectForKey:@"Set-Cookie"]; 

值當我創建一個NSMutableURLRequest我cookie的值設置爲存儲會話令牌

[theRequest setValue:session_token forHTTPHeaderField:@"Cookie"]; 

的問題是,導軌服務器正在做重定向到我使用的導航控制器中的登錄頁面

before_filter :authenticate, :except => [ :new, :create, :templates] 

回答

1

你不應該手動處理這個。從the docs

URL加載系統自動發送任何適合NSURLRequest存儲的cookie。除非請求指定不發送cookie。同樣,根據當前的Cookie接受策略,接受在NSURLResponse中返回的Cookie。

NSMutableURLRequest也有方法

- (void)setHTTPShouldHandleCookies:(BOOL)handleCookies 

但默認值是YES,如此反覆,你不應該做任何事情。

+0

它將令牌發送到服務器我添加了此代碼以驗證它 – user567592

+0

NSArray * pCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSLog(@「cookies%@」,[pCookies description]);我看到了 「」 – user567592