Contents

Develop
2017.04.19 11:10

[ios] Facebook SDK 로그인 설명

Views 1164 Comment 0
Atachment
Attachment '4'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

소셜 서비스들이 서드파티 로그인을 지원하는건 이미 다 아는 사실..

iOS 앱에서 Facebook SDK를 이용해 로그인/인증 처리 하는 과정을 심플하게 설명한다.


Facebook SDK의 로그인 동작 방식은 다음과 같이 4가지가 있다.

// FBSDKLoginManager.h
typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior)
{
  FBSDKLoginBehaviorNative = 0,
  FBSDKLoginBehaviorBrowser,
  FBSDKLoginBehaviorSystemAccount,
  FBSDKLoginBehaviorWeb,
};


위의 내용에 대한 설명과 실행 화면을 잠시 설명하고 샘플 코드로.. ㅋㄷ


1. FBSDKLoginBehaviorNative (Default)

- Facebook 앱 또는 웹뷰(Safari)를 선택하여 인증

- 앱이 설치되어 있지 않거나 웹뷰의 세션이 유효하면 선택없이 웹뷰로 동작


behavior01.jpg




2. FBSDKLoginBehaviorBrowser

- 웹뷰 사파리 또는 SFSafariViewController를 통해 인증


behavior02.jpg




3. FBSDKLoginBehaviorSystemAccount

- iOS 설정(Settings)의 Facebook 계정 정보를 이용하여 인증

- "사용자의 기본 프로파일 정보" 접근 권한 있을 경우 화면이동 없이 인증


behavior03.jpg




4. FBSDKLoginBehaviorWeb

- 앱 내부에 모달 UIWebView 팝업이 실행되며 이를 통해 인증


behavior04.jpg




# 샘플코드

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

.
.
.

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

[loginManager logOut];

//loginManager.loginBehavior = FBSDKLoginBehaviorNative;
//loginManager.loginBehavior = FBSDKLoginBehaviorBrowser;
//loginManager.loginBehavior = FBSDKLoginBehaviorSystemAccount;
//loginManager.loginBehavior = FBSDKLoginBehaviorWeb;

[loginManager
 logInWithReadPermissions: @[@"public_profile", @"email"]
 fromViewController:self
 handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
     
     if (error) {
         NSLog(@"Process error");
     } else if (result.isCancelled) {
         NSLog(@"Cancelled");
     } else {
         NSLog(@"Logged in");
     }
 }];



iOS 설정에서 페이스북 계정 설정이 되어 있는지 확인하기 위해서는 아래 코드를 이용하여 분기처리 할 수 있다.

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#import <Social/Social.h>

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
    NSLog(@"user have filled fb acount details");
    // FBSDKLoginBehaviorSystemAccount 가능;
}
else
{
    NSLog(@"settings is empty");
    // FBSDKLoginBehaviorSystemAccount 방식으로 동작하지 않음;
}



?

List of Articles
No. Category Subject Author Date Views
1125 Develop SVN 초간단 사용하기 hooni 2014.02.28 7621
1124 System/OS SVN(Subversion) 설치와 설정 (sasl 인증 적용 포함) file hooni 2014.09.11 5675
1123 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18850
1122 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1410
1121 Etc WM미통기 - 10. 조건부확률 hooni 2015.04.20 710
1120 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 871
1119 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2246
1118 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1629
1117 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6842
1116 Develop [ajax] 이벤트 코드 생성기 작업중.. ㅋㅋ file hooni 2013.04.23 7120
1115 PPT [ajax] 크로스 도메인(Cross Domain) 이슈 해결 방안 file hooni 2013.04.23 21940
1114 Algorithm [algorithm] Greedy (탐욕 기법) hooni 2003.04.23 15108
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98