QuickBlox : Already logged in Error after Logout

标签 quickblox

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

目前我们只有两个 View Controller 1)。登录和 2)。用户列表

成功登录后应用程序移动到 UserList View ,在此 View 中我们有Logout 按钮。 根据 QuickBlox API,我们使用以下方法注销

[QBUsers logOutWithDelegate:self];

点击按钮及其委托(delegate)方法:

- (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:] -> 返回。已经登录

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

最佳答案

根据SDK引用,存在session,只需用户登录并登录即可聊天。

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

 [QBAuth createSessionWithDelegate:self];

或扩展请求:

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

[QBAuth createSessionWithExtendedRequest:extendedAuthRequest delegate:self]; 

(如果您使用扩展请求创建 session ,则传递第二个操作)

2) 执行简单登录

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

3) 之后使用聊天:

[[QBChat instance] loginWithUser:currentUser];

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

[[QBChat instance] logout];

在那之后:

 [QBUsers logOutWithDelegate:self];

和:

  [QBAuth destroySessionWithDelegate:self];

session 的娱乐不一定。您可以创建一个 session 并多次登录/注销。

关于QuickBlox : Already logged in Error after Logout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698761/

相关文章:

iphone - iOS 上的 QuickBlox Facebook 聊天 - UDID 问题

ios - 如何在 Quickblox 中的两个用户之间创建 session ?

javascript - 通过 QuickBlox Javascript SDK 共享屏幕

ios - Quickblox 无法发送消息聊天

Android 访问 CustomObject 的原始 json

ios - 在 QuickBlox iOS 中将所有消息标记为已读

ios - 删除对话框后仍然收到推送消息

javascript - 如何使用 Quickblox 从 javascript 发送推送通知

android - 如何在android中使用quickblox?

android - Quickblox 身份验证错误