我们正在IBM MobileFirst V7.1,Java 1.7v中开发混合移动应用程序。
在此应用程序中,我们使用基于适配器的身份验证开发推送通知。
在我们的应用中,我们使用基于适配器的身份验证发送推送通知。 通知基于userId传递。 这是第一次到特定的userId,我能够发送通知。 之后,当用户尝试使用其他userId时,我无法发送通知,收到错误“用户已存在,请退出”。
日志错误: 无法在领域'pushAppRealm'中更改已登录用户的身份。应用程序必须先注销。
为此在客户端我通过使用“WL.Client.isUserAuthenticated(realm)”来检查用户是否已经过身份验证,它总是重新调整为false。 当用户点击登录按钮时我也尝试使用logout选项我正在注销用户并再次验证用户 - 在这里我也面临同样的问题“用户已经存在,请退出”。
答案 0 :(得分:0)
应该从服务器而不是从客户端调度推送通知。
在您的流程中,您第一次进行身份验证时,会将用户身份分配到您的用户域。现在,从客户端,您调用发出通知的适配器过程。 第二次,你传递另一个用户ID。这次您尝试再次与另一个用户进行身份验证(所有用户都在同一会话中)。当领域已经有一个时,它相当于强迫一个新的身份。
这就是为什么您在服务器中看到消息显示 - "无法更改领域中已登录用户的身份' pushAppRealm'。应用程序必须先注销。"
采用的正确方法是: