我们在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,但这也没有用。
我们在这里有点松散的结局,所以会感激任何指针! (我们可能做一些愚蠢而明显的事情!)。
答案 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对用户进行身份验证。有关如何以及何时使用此范围的信息,请参阅用户身份验证指南。