登出/切换账号

业务场景

登出/切换账号可用状态时,游戏内显示登出/切换账号按钮,点击后退出当前账号

注意事项

  • 登出/切换账号不可用时,请隐藏按钮,不可点击提示"不可用"等字眼。
  • 游戏回到登录界面,需要由用户手动点击登录按钮发起登录

流程图

接口介绍

/**
 * 登出/退出账号
 */
- (void)logout;

调用示例

// 监听登出回调通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onLogout:) name:NOTIFICATION_LOGOUT_SUCCESS object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSwitchAccountSuccess:) name:NOTIFICATION_SWITCHACCOUNT_SUCCESS object:nil];

//调用登出接口
[SDKManager.getInstance logout];

// 登出回调
- (void)onLogout:(NSNotification *)notif{
    NSLog(@"%@: 登出成功", @"Demo");
//    退出登录
//    游戏侧需要做角色退出操作,并返回到游戏的登录界面, 让用户重新点击登录按钮,重新拉起SDK的登录界面
}

- (void)onSwitchAccountSuccess:(NSNotification *)notif{
    NSLog(@"%@: 切换成功", @"Demo");
    NSDictionary *userData = notif.userInfo;
    NSString *openId = [userData objectForKey:KEY_OPENID];                 // SDK账号对外唯一标识
    long timestamp = [[userData objectForKey:KEY_TIMES_TAMP] longLongValue]; // 登录时间戳
    NSString *sign = [userData objectForKey:KEY_SIGN];                     // 服务端登录验签的签名信息
    NSString *token = [userData objectForKey:KEY_TOKEN];                   // 服务端登录验签的Token
    NSString *areaId = [userData objectForKey:KEY_AREAID];                 // 游戏大区Id
    BOOL isAuth = [[userData objectForKey:KEY_ISAUTH] boolValue];          // 是否实名认证
    NSString *birthday = [userData objectForKey:KEY_BIRTHDAY];             // 用户的生日
    NSInteger gender = [[userData objectForKey:KEY_GENDER] integerValue];  // 用户的性别
    UserInfo *userInfo = (UserInfo *)[userData objectForKey:KEY_USER_INFO];// 默认返回nil对象,无需处理该类型

  	if (userInfo != nil) {
      	// 使用前,需先进行非空判断,防止调用异常
        NSString *channelUid = userInfo.channelUid;
        NSString *avatarUrl = userInfo.avatarUrl;
        NSString *avatarUrlBig = userInfo.avatarUrlBig;
        NSString *nickName = userInfo.nickName;
        BOOL isAuthoriza = userInfo.isAuthoriza;
        NSInteger playerLevel = userInfo.playerLevel;
        NSString *shareId = userInfo.shareId;
        NSString *sharePosition = userInfo.sharePosition;
        NSString *shareServerId = userInfo.shareServerId;
        NSString *shareRoleId = userInfo.shareRoleId;
        NSInteger userType = userInfo.userType;
        NSInteger visitBackStatus = userInfo.visitBackStatus;
        NSString *phoneNum = userInfo.phoneNum;
        BOOL bandPhoneFlag = userInfo.bandPhoneFlag;
        NSString *location = userInfo.location;
    }
//     SDK内切换帐号成功
//     游戏侧需要做角色退出操作, 然后使用新的用户登录信息(userData)来重新走一次游戏侧的账号登录流程
}

参数说明

出参

参数名称类型说明
userDataUserData用户数据对象

错误码

FAQ