UIWebView facebook 인증 연결
오늘은 UIWebView와 facebook의 인증을 연결해보겠습니다.
사실 여러가지 시도를 해봤으나 아래 방법이 가장 적절한것 같아 포스팅을 합니다.
이전에 facebook sdk나 facebook app을 통한 인증을 처리해봤으나 아무래도 앱이 무겁고 테스트도 쉽지 않았습니다.
코드는 심플합니다.
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//----------------------------------------------------------------------
// Facebook login : Start
//----------------------------------------------------------------------
if( [[request.URL description] rangeOfString:@"https://m.facebook.com/v2.1/dialog/oauth?redirect_uri"].location != NSNotFound ||
[[request.URL description] rangeOfString:@"https://www.facebook.com/dialog/return/close"].location != NSNotFound
) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://book.data4library.kr"]]];
});
return NO;
}
if([[request.URL description] rangeOfString:@"https://www.facebook.com/logout.php?access_token="].location != NSNotFound ||
[[request.URL description] rangeOfString:@"https://m.facebook.com/logout.php?access_token="].location != NSNotFound) {
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *each in cookieStorage.cookies) {
[cookieStorage deleteCookie:each];
}
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
}
if([[request.URL description] rangeOfString:@"로그아웃URL"].location != NSNotFound) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
}
//----------------------------------------------------------------------
// Facebook login : End
//----------------------------------------------------------------------
}
이정도가 전부인데요... 내용이 그리 어렵지 않으니 위 코드만 봐도 이해하실 수 있을것 같습니다.