Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone linkedin Oauth如何记住登录_Iphone_Ios_Objective C_Oauth_Linkedin - Fatal编程技术网

Iphone linkedin Oauth如何记住登录

Iphone linkedin Oauth如何记住登录,iphone,ios,objective-c,oauth,linkedin,Iphone,Ios,Objective C,Oauth,Linkedin,几周前我开始从事iOS开发,最近我一直在尝试将社交网络集成到一个应用程序中(Facebook、Twitter、LinkedIn)。我设法实现了Facebook和Twitter的登录整合,但我被LinkedIn困住了 使用此示例进行LinkedIn集成,我可以登录到LinkedIn,但一旦我的应用程序关闭,我必须重新登录 为了让应用程序记住已登录的用户,我应该做什么?如何使用登录中的访问令牌在应用程序的其他视图上实现从LinkedIn(社交、网络等)获取提要?当用户登录到应用程序时,您应该通过Li

几周前我开始从事iOS开发,最近我一直在尝试将社交网络集成到一个应用程序中(Facebook、Twitter、LinkedIn)。我设法实现了Facebook和Twitter的登录整合,但我被LinkedIn困住了

使用此示例进行LinkedIn集成,我可以登录到LinkedIn,但一旦我的应用程序关闭,我必须重新登录


为了让应用程序记住已登录的用户,我应该做什么?如何使用登录中的访问令牌在应用程序的其他视图上实现从LinkedIn(社交、网络等)获取提要?

当用户登录到应用程序时,您应该通过LinkedIn API请求访问令牌。之后,使用NSUserDefaults保存此访问令牌。所以当用户打开应用程序时,你们要检查accesstoken是否存在。如果存在accesstoken,则表示用户已登录到应用程序

- (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。一旦发现该值,在第一次身份验证后在设备上保留令牌,在下一次应用程序启动时,读取该值并再次设置。如何在设备上保留令牌?以某种方式使用NSUserDefaults?这是一种方式,或者是文件系统,或者是密钥链服务(),我真的无法理解如何使用NSUserDefaults、文件系统或者密钥链服务,在哪里使用,以及在什么方面使用。我真的不理解我正在使用的示例的代码,并且没有任何解释。不要绝望。一开始它看起来像一个巨大的混乱。也许考虑从一个简单的应用程序开始?非常彻底地学习一个非常小的应用程序,然后做一个小步骤。不要担心你的速度。一旦你开始行动,这将成倍增加。