QuickBlox:注销后已经登录错误

时间:2013-12-20 07:52:58

标签: quickblox

我们正在使用 QuickBlox的iOS SDK 进行聊天实施。

目前我们只有两个视图控制器 1)。登录和2)。 UserList

在此视图中成功登录app移至 UserList 视图后,我们有注销按钮。 根据QuickBlox API,我们使用以下方法进行注销

[QBUsers logOutWithDelegate:self];

按钮单击及其委托方法:

- (void)completedWithResult:(Result *)result
{
    if([result isKindOfClass:[QBUUserLogOutResult class]]) // QuickBlox User Logout result
    {
        // Success result
        if(result.success)
        {
            [self.navigationController popToRootViewControllerAnimated:YES];
        }
    }
}

成功注销后,应用程序返回登录界面。

问题:

当用户点击退出并且应用程序移动到登录屏幕时,如果用户输入相同的用户名和密码,则再次登录

Chat App[3183:5903] -[QBChat loginWithUser:] -> return. Already logged in

如何解决此问题?或者实施登录/注销流程的最佳做法是什么?

1 个答案:

答案 0 :(得分:5)

根据SDK参考,存在会话,只需用户登录和登录聊天。

1)您需要创建会话。您可以简单地创建它:

 [QBAuth createSessionWithDelegate:self];

或扩展请求:

 QBASessionCreationRequest *extendedAuthRequest = [QBASessionCreationRequest request];
 extendedAuthRequest.userLogin = @"garry";
 extendedAuthRequest.userPassword = @"garrySant88";

[QBAuth createSessionWithExtendedRequest:extendedAuthRequest delegate:self]; 

(如果您使用扩展请求创建会话,请通过第二个操作)

2)执行简单登录

 [QBUsers logInWithUserLogin:currentUser password:pass delegate:self]

3)之后使用聊天:

[[QBChat instance] loginWithUser:currentUser];

对于注销,您应该按顺序执行注销方法。

[[QBChat instance] logout];

之后:

 [QBUsers logOutWithDelegate:self];

  [QBAuth destroySessionWithDelegate:self];

不必重新开始会话。您可以创建一个会话,并多次登录/注销。