Javascript 在Smooch中使用appUser范围内的令牌

Javascript 在Smooch中使用appUser范围内的令牌,javascript,jwt,smooch,Javascript,Jwt,Smooch,我正在开发一个小部件,我公司的用户可以使用它通过Smooch与最终用户进行通信 小部件可以通过web浏览器访问,通信主要通过节点中开发的层进行。然而,我试图将附件直接发送到Smooch,以减少服务器中的负载 据我所知,有必要使用具有appUser作用域的令牌,以避免CORS出现问题 我使用以下代码创建令牌 app.get('/getjwt', (req, res) => { var token = jwt.sign({ scope: 'appUser', userId: req

我正在开发一个小部件,我公司的用户可以使用它通过Smooch与最终用户进行通信

小部件可以通过web浏览器访问,通信主要通过节点中开发的层进行。然而,我试图将附件直接发送到Smooch,以减少服务器中的负载

据我所知,有必要使用具有appUser作用域的令牌,以避免CORS出现问题

我使用以下代码创建令牌

app.get('/getjwt', (req, res) => {
      var token = jwt.sign({ scope: 'appUser', userId: req.body.userId }, SECRET, { header: { 'alg': 'HS256', 'type': 'JWT', 'kid': '[app key ID]' } });
      res.send({ jwt: token });
});
我尝试使用生成的令牌(使用邮递员进行测试),通过使用授权承载人[my generated token]发出请求,得到以下错误:

{
    "error": {
        "code": "invalid_auth",
        "description": "Invalid JWT header. Missing key id (kid)"
    }
}
我曾尝试将“kid”值更改为app ID、API key ID和API key Secret,但我总是遇到相同的错误。我错过了什么?我应该把钥匙ID传给别的地方吗


谢谢,

您的代码对我来说很好,您使用的是什么版本的
jsonwebtoken
?在v6.0.0中,
标题
选项被重命名为
标题
,因此如果您使用的是5.x或更低版本,您的代码应该是这样的

var token = jwt.sign({ scope: 'appUser', userId: req.body.userId }, SECRET, { headers: { 'alg': 'HS256', 'type': 'JWT', 'kid': '[app key ID]' } });
这就是说,Smooch已经提供了一个功能齐全的web messenger/小部件,您应该使用它,而不是尝试构建自己的。它提供了事件挂钩和方法来构建一个完全定制的UI,如果这正是您想要实现的。看到和