【问题标题】:Zendesk authenticationZendesk 身份验证
【发布时间】:2022-07-28 21:26:40
【问题描述】:

我需要在 zendesk 聊天中显示用户名(对于代理),我使用的是 zendesk 提供的代码:

window.zESettings = {
 webWidget: {
   authenticate: {
     chat: {
       jwtFn: function(callback) { 
         fetch('JWT_TOKEN_ENDPOINT').then(function(res) {
            res.text().then(function(jwt) {
             callback(jwt);
            });
          });
        }
      } 
    }
  }
};

而 jwt 令牌是:

var payload = {
  name: '#{customerName}',
  email: '#{customerEmail}',
  iat: #{timestamp},
  external_id: '#{externalId}'
};
var token = jwt.sign(payload, '#{yourSecret}');

代码不起作用,我没有收到错误,但用户名不可见。 Zendesk 文档没有提供任何有价值的信息,有人在他们的应用程序中集成了 Zendesk 吗?我究竟做错了什么?非常感谢任何帮助和建议。

【问题讨论】:

    标签: javascript authentication chat zendesk zendesk-api


    【解决方案1】:

    我在使用类似实现时遇到了一些问题。在我的情况下,我使用相同的 Javascript 来验证聊天 webWidget。我在使用 ruby-jwt gem 生成令牌的 rails 控制器 (RoR) 中定义了我的 JWT_TOKEN_ENDPOINT

    在我的情况下,我的浏览器显示错误消息:

    Zendesk Chat Web SDK: Error: init: Failed to verify token: jwt verification error
    

    您是否看到任何浏览器控制台错误提示可能是什么问题?

    您是否设置了端点来生成 JWT 令牌?

    您是否在 jwt.sign(payload, "#{youSecret}") var 分配中传递了有效的共享密钥?

    【讨论】:

      【解决方案2】:

      确保时间戳以秒为单位,没有浮点数。

      使用iat: Math.round(Date.now() / 1000)

      【讨论】:

        猜你喜欢
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 2015-02-02
        • 2018-02-24
        • 2015-04-29
        • 2010-10-05
        • 2013-10-30
        相关资源
        最近更新 更多