我正在玩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 Web token )中提到的新方法。您可以阅读有关Here的更多信息。
    do we need to generate 50 JWT or 1 JWT only?
    

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

    如果决定这样做,则需要使用登录的用户ID创建该JWT token ,然后通过以下方式将该 token 分配给Smooch
    [Smooch login:@"user-id" jwt:@"jwt" completionHandler:^(NSError * _Nullable error, NSDictionary * _Nullable userInfo) {
        // Your code after login is complete
    }];
    

    这很难做到。还有另一种方法。

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

    注意:如果您不关心用户现有的聊天详细信息,则可以使用Smooch而不添加这样的jwt token
    [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];
    

    关于ios - JWT如何在Smooch iOS中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47451547/

    10-10 15:57