无法将用户ID登录到Web Messenger(无效范围)

时间:2017-10-04 17:11:51

标签: smooch

我们在Smooch初始化会话时遇到问题。我们已使用帐户级范围成功创建了JWT令牌,并且我们已使用API​​创建了用户(mycatalyst_test)。当我们使用API​​时,我们能够正确访问和查询用户,创建消息等。

但是,当我们尝试初始化Smooch网络信使并将用户登录时:

Smooch.init({
appId: 'XXX',
userId: 'mycatalyst_test',
jwt: 'XXX',
embedded: true
});

我们收到错误:

{"error":{"code":"forbidden","description":"Invalid scope"}}

我们检查了文档,但无法在Web Messenger文档中找到对无效范围错误或禁止代码的任何引用,并且我们能够使用相同的JWT密钥进行访问成功通过API获取信息,因此我们并不完全确定出现了什么问题。

我们尝试使用App范围而不是Account范围来生成新的JWT密钥,但这也没有用。我们尝试使用Smooch ID而不是用户ID,但这也没有用。

我们在这里有点松散的结局,所以会感激任何指针! (我们可能做一些愚蠢而明显的事情!)。

1 个答案:

答案 0 :(得分:0)

请参阅authenticating users的文档。在向login API提供JWT时,您必须使用appUser范围,否则您将向您的用户分发JWT,以便访问您的整个帐户/应用!

jwt.sign({
    scope: 'appUser',
    userId: userId
},
SECRET,
{
    header: {
        alg: 'HS256',
        typ: 'JWT',
        kid: KEY_ID
    }
});

REST API文档的authorization部分中还有此注释:

  

使用其中一个Smooch原生SDK集成时,还可以使用其他范围的appUser对用户进行身份验证。有关如何以及何时使用此范围的信息,请参阅用户身份验证指南。