在 ios 的 Facebook 登录中检查是不是已在此应用中注册

Posted

技术标签:

【中文标题】在 ios 的 Facebook 登录中检查是不是已在此应用中注册【英文标题】:check for already registered with this app in facebook login in ios在 ios 的 Facebook 登录中检查是否已在此应用中注册 【发布时间】:2016-02-09 09:16:05 【问题描述】:

我正在将 FB 集成到我的应用中,以便在我的 ios 应用中登录和注册。

当我从应用程序注册 fb 时,我想知道用户是否拥有该应用程序的already registered with fb

如果他已经注册 然后我想执行login actions

否则signup actions..!!

- (void)  loginButton:(FBSDKLoginButton *)loginButton
    didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
                error:(NSError *)error

    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                  initWithGraphpath:[NSString stringWithFormat:@"/%@",result.token.userID]
                                  parameters:@ @"fields" : @"id, name, email, first_name, hometown, last_name, location" 
                                  HTTPMethod:@"GET"];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) 
        [self handleRequestCompletionWithResult:result error:error];
    ];



- (void)handleRequestCompletionWithResult:(id)result error:(NSError *)error
    
    NSString *title = nil;
    NSString *message = nil;
    if (error) 
        title = @"Graph Request Fail";
        message = [NSString stringWithFormat:@"Graph API request failed with error:\n %@", error];
     else 
        title = @"Graph Request Success";
        message = [NSString stringWithFormat:@"Graph API request success with result:\n %@", result];
        if(already registered user) 
             //perform login for my app
         else  
             //perform signup action for my app
        
    
    NSLog(@"%@",message);

有什么方法可以实现吗?

【问题讨论】:

你不使用后端吗?在facebook请求结束时,您获得的信息,您必须通过网络服务将这些信息发送到后端,后端将处理它的注册或登录。后端可以向您发送用户注册或登录的信息。 如果您仍然想跟踪 facebook 用户注册或登录的情况,那么您可以创建一个本地数据库并存储登录用户的 ID。通过 facebook 请求,您将获得 facebook id,将其与本地数据库存储的 facebook id 进行比较。如果它存在,那么它就是一个登录或注册它。 是的,我可以在后端管理它.. 但是 fbsdk 有什么解决方案吗? 这是自动发生的,我的意思是你添加一个 FSDKLoginButton,如果用户已经授权,那么很好,否则登录页面打开。 【参考方案1】:

我最近确实在我的一个应用程序中集成了 FBSDK,这就是我检查用户是否已获得授权的方法。

if ([FBSDKAccessToken currentAccessToken]) 
//perform login for your app

else 
// perform signup action for your app

希望这会有所帮助。

【讨论】:

访问令牌的存在检查用户是否已经登录。它不会告诉您用户是否已授权该应用程序。事实上,用户可能已经授权了该应用程序,但如果他已注销,则拥有一个 nil 令牌。

以上是关于在 ios 的 Facebook 登录中检查是不是已在此应用中注册的主要内容,如果未能解决你的问题,请参考以下文章

检查用户是不是已登录 Facebook

iOS 版 Facebook 登录

Android,检查用户是不是使用 Facebook 登录

在 Facebook iOS SDK 中检查 Facebook 对话帖子是不是成功

在 iOS/Android/Facebook/Twitter 政策中,是不是可以在没有用户单击登录按钮的情况下自动登录用户?

Firebase Facebook登录检查用户是不是存在