-
Notifications
You must be signed in to change notification settings - Fork 5
Using facebook account to # or up
baas.io는 페이스북 계정으로 회원가입 및 로그인이 가능하다.
이 글에서는 Facebook iOS SDK 를 이용하여 access token을 발급 받아 baas.io에 로그인 하는 방법에 대해서 알아보도록 하겠다.
- 이 문서가 작성될 당시의 SDK 정보는
v3.1.1 as of Oct. 3, 2012.
이다
Facebook App Dashboard에서 아래와 같이 facebook 앱을 만들어 준다.
Native iOS App을 체크한 후 Bundle ID
에 당신의 Bundle Identifier를 입력하고, Facebook 로그인
도 활성화 시킨다.
- Bundle Identifier는 다음에 또 나온다. 몰라도 일단 넘어가자.
.plist 파일에서 Bundle Identifier를 위에 입력한 값과 동일하게 셋팅해줍니다.
또한 FacebookAppID값을 Facebook App Dashboard 에서 발급 받았던 App ID
로 셋팅한 후
[URL types] - [URL Schemes]에 아래와 같이 App ID
앞에 fb를 붙여 입력합니다.
[Build Pharses] - [Linked Frameworks and Libraries]에 facebook SDK외에 AdSupport
, Accounts
and Social
3개의 프레임워크를 추가해 줍니다.
[Build Setting] - [Other Linker Flags]에 -lsqlite3.0
를 추가합니다.
AppDelegate에 아래의 내용을 추가해 줍니다.
로그인이 성공하면 access token이 전달 됩니다.
#import <FacebookSDK/FacebookSDK.h>
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [FBSession.activeSession handleOpenURL:url];
}
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"session : %@", session.accessToken);
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
// Once the user has logged in, we want them to
// be looking at the root view.
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
- (void)openSession:(BOOL)allowLoginUI
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
그 다음 원하는 뷰에 아래와 같이 로그인 / 로그아웃을 구현하면 됩니다.
- (void)logout
{
[[FBSession activeSession] closeAndClearTokenInformation];
}
- (void)login
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate openSession:YES];
}
baas.io에 facebook에서 발급 받은 토큰을 넘겨 baas.io 에 로그인, 회원가입을 합니다.
// 회원가입
[BaasioUser #ViaFacebookInBackground:session.accessToken
successBlock:^(void){
NSLog(@"success - ");
}
failureBlock:^(NSError *error){
NSLog(@"error - %@", error.localizedDescription);
}];
// 로그인
[BaasioUser signInViaFacebookInBackground:session.accessToken
successBlock:^(void){
NSLog(@"success - ");
}
failureBlock:^(NSError *error){
NSLog(@"error - %@", error.localizedDescription);
}];
(반드시 최신의 facebook, baas.io sdk를 첨부하여 사용하세요.)
https://github.com/baasio/baasio-facebookLogin-iOS
http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/
http://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/