views:

88

answers:

1

I'm building an iPhone app, which will allow users to log in to a PHP web server that authenticates the user and starts a session.

My idea for managing a session is to create a singleton User class that has a sharedLogin method. Would it be prudent to store the session variable in the shared instance in order to maintain the session?

+1  A: 

For those interested. The method I decided on is to use NSURLConnection delegate method connection:didReceiveResponse:. Then I processed the response headers and store the PHPSESS cookie in the singleton NSHttpCookieStorage:

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

    [super connection:connection didReceiveResponse:response];
    NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse *)response;

    NSArray *allCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:[urlResponse allHeaderFields] forURL:[response URL]];

    if ([allCookies count]) {
        [connection cancel];

        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:allCookies forURL:[response URL] mainDocumentURL:nil];
    }
}
Calvin L