Contents

Develop
2017.04.19 11:10

[ios] Facebook SDK 로그인 설명

조회 수 1305 댓글 0
Atachment
첨부 '4'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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

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
번호 분류 제목 글쓴이 날짜 조회 수
1077 Develop [c] RSA 암호화 구현(gmp 라이브러리 활용) file hooni 2016.10.03 1007
1076 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 1015
1075 PPT 삼성페이(Samsung Pay) 구조 file hooni 2016.09.09 1018
1074 Develop [js] AngularJS 란? file hooni 2015.11.26 1020
1073 System/OS [mac] How to uninstall MySQL on Mac OS. hooni 2017.11.08 1032
1072 System/OS [virtualbox] VirtualBox에 Ubuntu 설치하기 file hooni 2019.11.22 1058
1071 Develop [ios] 로컬에 있는 JS 파일 웹뷰에서 동적으로 실행하기 hooni 2015.02.10 1066
1070 Develop [ios] 오브젝티브C→스위프트, 코드 변환 손쉽게 file hooni 2015.08.07 1070
1069 Develop [android] 딜레이를 구현하기 위한 꼼수 hooni 2016.11.24 1072
1068 Develop [ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법 file hooni 2017.03.29 1074
1067 Develop [ios] APNS, Remote Push 수신 시점에서 앱의 3가지 실행 상태 hooni 2018.10.19 1080
1066 Develop [js] 스크롤 이벤트 막기 hooni 2015.04.14 1084
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 98 Next
/ 98