4,552,109 th visitor since 2017.2.1 ( Today : 694 )
Programming
No. 681
Name. swindler
Subject. OAuthConsumer를 이용한 xAuth
Main Cate. iOS
Sub Cate.
Date. 2010-08-16 11:49
Hit. 3619 (211.36.27.8)
File.
OAuthConsumer 는 Objective-C로 구현된 OAuth 라이브러리이다.
이 라이브러리는 OAuth에 필요한 여러 모듈들을 포함하고 있으며 이를 이용하여 xAuth 인증도 가능하다.

인증 방법은 아래와 같다.


1. OAConsumer 에 부여받은 Consumer Key와 Secret를 입력한다.
Twitter에서 Consumer Key와 Secret을 받기 위해서는 "http://dev.twitter.com/apps/new"에 접속하여 등록하고, Foursquare에서 받기 위해서는 "http://foursquare.com/oauth/"에 접속해서 등록한다.

OAConsumer *consumer = [OAConsumer alloc] initWithKey:consumerKey String secret:consumer Secret];



2. 입력한 값은 OAMutableURLRequest에 입력한다.
Twitter의 경우에는 URL이 "https://api.twitter.com/oauth/access_token"가 되며, Foursquare의 경우에는 "http://foursquare.com/oauth/access_token"가 된다.

OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:URL consumer:consumer token:nil realm:nil signatureProvider:nil];



3. request HTTP Method를 비롯해 파라미터를 입력한다. Twitter, Foursquare 동일 파라미터이다. 하지만 Twitter는 xAuth 허가를 따로 받아야 한다.

[request setHTTPMethod:@"POST"];
[request setParameters:[NSArray arrayWithObjects:
[OARequestParameter requestParameterWithName:@"x_auth_mode" value:@"client_auth"], [OARequestParameter requestParameterWithName:@"x_auth_username" value:@"username"],
[OARequestParameter requestParameterWithName:@"x_auth_password" value:@"password"], nil]];



4. 준비는 모두 끝났다. 이제 connection을 할 순서이다. connection은 "OADataFetcher"를 이용한다.

OADataFetcher *dataFetcher = [[OADataFetcher alloc] init];
[dataFetcher fetchDataWithRequest:request delegate:self
didFinishSelector:@selector(setAccessToken:withData:)
didFailSelector:@selector(accessTokenTicket:didFailWithError:)];


5. OADataFetcher는 NSURLConnection과 유사한 클래스이며, didFinishSelector와 didFailSelector로 결과 여부에 따라 selector를 선언해준다.


6. 정확한 Consumer Key, Secret와 username, password를 입력하여 전송했다면, dataFetcher에서 NSData 형식의 Token을 보내준다. 형식은 "oauth_token=xxxxx&oauth_token_secret=xxxxx" 보내준다. 여기서 받은 token을 이용하여 다른 API에도 사용자 인증을 받은채로 접근이 가능하며, 이를 앱에 등록하여 놓으면 따로 Login 과정을 거치지 않아도 된다.


[바로가기 링크] : http://coolx.net/cboard/develop/681



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog