IBM MobileFirst V7.1推送通知问题

时间:2016-05-03 12:20:26

标签: push-notification mobilefirst-adapters

我们正在IBM MobileFirst V7.1,Java 1.7v中开发混合移动应用程序。

在此应用程序中,我们使用基于适配器的身份验证开发推送通知。

在我们的应用中,我们使用基于适配器的身份验证发送推送通知。 通知基于userId传递。 这是第一次到特定的userId,我能够发送通知。 之后,当用户尝试使用其他userId时,我无法发送通知,收到错误“用户已存在,请退出”。

日志错误: 无法在领域'pushAppRealm'中更改已登录用户的身份。应用程序必须先注销。

为此在客户端我通过使用“WL.Client.isUserAuthenticated(realm)”来检查用户是否已经过身份验证,它总是重新调整为false。 当用户点击登录按钮时我也尝试使用logout选项我正在注销用户并再次验证用户 - 在这里我也面临同样的问题“用户已经存在,请退出”。

1 个答案:

答案 0 :(得分:0)

应该从服务器而不是从客户端调度推送通知。

在您的流程中,您第一次进行身份验证时,会将用户身份分配到您的用户域。现在,从客户端,您调用发出通知的适配器过程。 第二次,你传递另一个用户ID。这次您尝试再次与另一个用户进行身份验证(所有用户都在同一会话中)。当领域已经有一个时,它相当于强迫一个新的身份。

这就是为什么您在服务器中看到消息显示 - "无法更改领域中已登录用户的身份' pushAppRealm'。应用程序必须先注销。"

采用的正确方法是:

  1. 验证进入领域。
  2. 订阅Push。这会将用户身份从1)分配给您的订阅。
  3. 使用轮询机制或REST API调用来发送通知。将用户标识作为参数传递给REST调用。