오늘은 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
//----------------------------------------------------------------------
}
이정도가 전부인데요... 내용이 그리 어렵지 않으니 위 코드만 봐도 이해하실 수 있을것 같습니다.
'아빠방 > Tech' 카테고리의 다른 글
MySQL & MariaDB 관리 (0) | 2019.11.20 |
---|---|
산출물 작성시 유용한 쿼리 (0) | 2016.09.22 |
IOS UIWebView와 Web의 연결 (0) | 2016.08.29 |
UIWebView에 QR코드 리더 넣기 (0) | 2016.08.26 |
테이블 목록 및 데이터 건수 (0) | 2016.05.26 |
댓글