iOS 백그라운드에서 쿠키 로그인 질문 받기

3459 단어
보름이나 바빴는데 마침내 다 끝났으니 앉아서 총결산을 하자.오늘 이 문제는 쿠키 문제입니다. 초보자이기 때문에 저는 이 문제를 쓸 때 인터넷에서 쿠키에 관한 블로그 글을 많이 찾았고 쿠키에 대해 좀 알게 되었습니다.
쿠키에 대해 말하자면 쿠키가 웹뷰에 로그인해야 할 때 웹뷰는 이 쿠키에 따라 자동으로 로그인합니다.
NSArray * cookieArr = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies];//  cookie
for (NSHTTPCookie * cookie in array) {          //  cookie
  [cookie name]//    cookie key
  [cookie value]//    cookie value
}

저는 백그라운드에서 얻은 쿠키이기 때문에 웹 페이지를 만났을 때 웹 페이지가 자동으로 쿠키를 읽게 하려면 먼저 쿠키에 가입하고 백그라운드에서 얻은 쿠키를 시스템의 쿠키 대기열에 추가합니다.
             ,{cookieName:name,cookiePasswd:passed}

NSMutableDictionary * cookiePreperties = [NSMutableDictionary dictionary];
[cookiePreperties setObject:@"cookieName" forKey:NSHTTPCookieName];
[cookiePreperties setObject:name forKey:NSHTTPCookieValue];
[cookiePreperties setObject:@"http://" forKey:NSHTTPCookieDomain];//http     cookie       
[cookiePreperties setObject:@"http://" forKey:NSHTTPCookieOriginURL];
[cookiePreperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookiePreperties setObject:@"0" forKey:NSHTTPCookieVersion];
NSHTTPCookie * cookie = [NSHTTPCookie cookieWithProperties:cookiePreperties];
            
NSMutableDictionary * cookiePrepertiess = [NSMutableDictionary dictionary];
[cookiePrepertiess setObject:@"cookiePasswd" forKey:NSHTTPCookieName];
[cookiePrepertiess setObject:passwd forKey:NSHTTPCookieValue];
[cookiePrepertiess setObject:@"http://" forKey:NSHTTPCookieDomain];
[cookiePrepertiess setObject:@"http://" forKey:NSHTTPCookieOriginURL];
[cookiePrepertiess setObject:@"/" forKey:NSHTTPCookiePath];
[cookiePrepertiess setObject:@"0" forKey:NSHTTPCookieVersion];
NSHTTPCookie * cookies = [NSHTTPCookie cookieWithProperties:cookiePrepertiess];

[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie];
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookies];

그리고 쿠키를 출력하는데 그 안에 추가된 쿠키가 있다.쿠키가 추가되면 쿠키를 읽을 수 있습니다.
NSString *userstring;
NSString * passString;
NSMutableArray *  cookArray = [[NSMutableArray alloc]init];
NSArray * array = [[NSHTTPCookieStoragesharedHTTPCookieStorage]cookies];
//  cookie
for (NSHTTPCookie * cookie in array) {
   [cookArray addObject:[cookie name]];
  if ([[cookie name] isEqualToString:@"cookieName"]) {
   userstring = [cookie value];
  }if ([[cookie name] isEqualToString:@"cookiePasswd"]) {
   passString = [cookie value];
  }
}

//  cookie,   
NSArray * heardCookie = [NSHTTPCookie cookiesWithResponseHeaderFields:[NSDictionary
dictionaryWithObject:[[NSString alloc] 
initWithFormat:@"cookieName=%@", userstring] //   cookieName    
forKey:@"Set-Cookie"] 
forURL:[NSURL URLWithString:@"http://"]];

[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookies:heardCookie forURL:[NSURL URLWithString:@"http://"] mainDocumentURL:nil];

//passwd
NSArray * heardCookie = [NSHTTPCookie cookiesWithResponseHeaderFields:[NSDictionary 
dictionaryWithObject:[[NSString alloc] 
initWithFormat:@"cookiePasswd =%@", passString] //cookiePasswd     
forKey:@"Set-Cookie"] 
forURL:[NSURL URLWithString:@"http://"]];

[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookies:heardCookie forURL:[NSURL URLWithString:@"http://"] mainDocumentURL:nil];

이것은 단지 하나의 방법일 뿐입니다. 비록 번거로워 보이지만, 당신이 더 좋은 방법이 있을 때, 개의치 않는다면, 나에게 서로 공부한다고 말해 주세요!!!

좋은 웹페이지 즐겨찾기