사용자가 앱에 로그인하면 LinkedIn API를 통해 액세스 토큰을 요청해야합니다. 그런 다음 NSUserDefaults를 사용하여이 액세스 토큰을 저장합니다. 따라서 사용자가 앱을 열 때 액세스 기록의 유무를 확인합니다. 액세스 기록이 있으면 사용자가 이미 앱에 로그인했습니다.
- (void)getAccessToken:(NSString *)authorizationCode success:(void (^)(NSDictionary *))success failure:(void (^)(NSError *))failure
{
NSString *accessTokenUrl = @"/uas/oauth2/accessToken?grant_type=authorization_code&code=%@&redirect_uri=%@&client_id=%@&client_secret=%@";
NSString *url = [NSString stringWithFormat:accessTokenUrl, authorizationCode, [self.application.redirectURL LIAEncode], self.application.clientId, self.application.clientSecret];
[self POST:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *accessToken = [responseObject objectForKey:@"access_token"];
NSTimeInterval expiration = [[responseObject objectForKey:@"expires_in"] doubleValue];
// store credentials
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:accessToken forKey:LINKEDIN_TOKEN_KEY];
[userDefaults setDouble:expiration forKey:LINKEDIN_EXPIRATION_KEY];
[userDefaults setDouble:[[NSDate date] timeIntervalSince1970] forKey:LINKEDIN_CREATION_KEY];
[userDefaults synchronize];
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
}
필자는 해당 라이브러리를 사용하지 않았지만 oauth의 중요한 부분은 인증 중에 액세스 토큰을 얻어 이후 요청에 서명하는 것입니다. 그 도서관은 어떻게 든 그것을하고 있습니다. 저기에 저기에 액세스 토큰에 대한 저명한 getter와 setter가 있어야합니다. 일단 그것을 찾으면, 첫 번째 인증 후에 장치에 토큰을 유지하고 다음 앱 시작시 토큰을 읽고 다시 설정합니다. – danh
장치에 토큰을 어떻게 보관해야합니까? 어떻게 든 NSUserDefaults를 사용합니까? – user2282749
그건 편도, 파일 시스템, 키 체인 서비스 (https://developer.apple.com/library/ios/#documentation/security/conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html%23//apple_ref/doc/)입니다. uid/TP30000897-CH208-SW1) – danh