JWT 如何在 Smooch iOS 中工作?

How does JWT Work in Smooch iOS?

我正在玩 Smooch SDK。我的问题是 JWT 如何在 Smooch iOS 中工作?

目前我有 1 个应用程序,如果我想使用基于用户 ID 的 Smooch,(例如 1 个应用程序有 50 个用户与之聊天),我们需要生成 50 个 JWT 还是只生成 1 个 JWT?

    [Smooch login:self.smoochUserId jwt:@"WHAT IS THIS"];

谢谢

基本上在 Smooch 的旧版本中,没有像用户不能从多个设备访问同一个对话这样的功能。

即,如果一个用户登录了一台设备,而第二个用户登录了同一台设备,则

  • 第二个用户可以看到第一个用户的聊天记录和
  • 如果第二个用户之前使用其他设备登录过,他将看不到他之前的聊天记录。

为了克服这个问题,Smooch 引入了您在上面提到的使用 JWT(JSON 网络令牌)的新方法。您可以阅读更多相关信息 Here

do we need to generate 50 JWT or 1 JWT only?

您需要根据每个用户的 userId(来自您的数据库)为每个用户生成 JWT server side

如果您决定这样做,您需要创建具有登录用户 ID 的 JWT 令牌,并通过

将该令牌分配给 Smooch
[Smooch login:@"user-id" jwt:@"jwt" completionHandler:^(NSError * _Nullable error, NSDictionary * _Nullable userInfo) {
    // Your code after login is complete
}];

这有点难做。还有另一种方法。

从我提交的 link1 中找到示例 node.js 代码并将其提供给您的后端服务器。并要求他们为每个用户创建,以便您可以使用用户模型获取 JWT 令牌(成功登录后将获得)。 直接将其添加到 Smooch.

注意:如果您不关心用户现有的聊天详细信息,您可以使用 Smooch 而无需像这样添加 jwt 令牌

[Smooch initWithSettings:[SKTSettings settingsWithAppId:@"Your App token(Get it from Smooch dashboard)"] completionHandler:^(NSError * _Nullable error, NSDictionary * _Nullable userInfo) {}
[[SKTUser currentUser] addProperties:@{@"Company":[[NSUserDefaults standardUserDefaults] valueForKey:@"company"],@"UserId":[[NSUserDefaults standardUserDefaults] valueForKey:@"empid"]}];
[Smooch show];