Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Zendesk SDK JwtAuthentication不工作

Zendesk SDK JwtAuthentication不工作
EN

Stack Overflow用户
提问于 2022-03-16 01:00:45
回答 1查看 248关注 0票数 0

我有用于android的SDK,我尝试为聊天和支持模块设置JWT标识。

我在文档中定义了一个web钩子。起作用了。我在日志中看到,zendesk正在发送我在JwtIdentity中给他的用户令牌,它返回在文档中指定的一个jwt,其中包含名称、电子邮件、jti和iat。

网络钩子的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
router.post('/jwt', async (req, res, next) => {
    try {
        console.log(req.body)
        const user_token = req.body.user_token

        const user = await usersService.findByTokend(user_token)

        if (typeof user === "undefined" || user === null) {
            return res.status(404).send('No user found').end()
        }

        const token = jwt.sign({
                name: `${user.lastname} ${user.firstname}`.toLowerCase().trim(),
                email: user.email.toLowerCase().trim(),
            },
            JWT_SECRET,
            {
                expiresIn: '12h',
                jwtid: uuidv4()
            })

        console.log(token)
        return res.status(200).send({
            jwt: token
        }).end()
    } catch (err) {
        console.log(err)
        next(err)
    }
})

在初始化过程中,我的web钩子日志和我的SDK实现中没有什么问题。当我调用该活动并试图对用户进行身份验证时,它失败了。

对于聊天实例,我定义了一个JwtAuthenticator如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ZendeskJwtAuthenticator implements JwtAuthenticator {
    private String user_token;

    public void setUserToken(String user_token) {
        this.user_token = user_token;
    }

    @Override
    public void getToken(JwtCompletion jwtCompletion) {
        try {
            OkHttpClient client = new OkHttpClient();
            
            JSONObject jsonBody = new JSONObject();
            jsonBody.put("user_token", user_token);

            RequestBody requestJsonBody = RequestBody.create(
                    jsonBody.toString(),
                    MediaType.parse("application/json")
            );

            Request postRequest = new Request.Builder()
                    .url(url)
                    .post(requestJsonBody)
                    .build();

            client.newCall(postRequest).enqueue(new Callback() {
                @Override
                public void onFailure(@NotNull Call call, @NotNull IOException e) {
                    jwtCompletion.onError();
                }

                @Override
                public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                    try {
                        String body = response.body().string();
                        JsonObject jsonObject = JsonParser.parseString(body).getAsJsonObject();
                        if (jsonObject.has("jwt")) {
                            jwtCompletion.onTokenLoaded(jsonObject.get("jwt").getAsString());
                        } else {
                            jwtCompletion.onError();
                        }
                    } catch (Exception e) {
                        jwtCompletion.onError();
                    }
                }
            });
        } catch (Exception exception) {
            jwtCompletion.onError();
        }
    }
}

我称之为集合身份如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void setUserIdentity(String user_token) {
    Identity identity = new JwtIdentity(user_token);
    ZendeskJwtAuthenticator autenticator = new ZendeskJwtAuthenticator();
    autenticator.setUserToken(user_token);
    Zendesk.INSTANCE.setIdentity(identity);
    Chat.INSTANCE.setIdentity(autenticator);
}

它在init之后被称为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Zendesk.INSTANCE.init(appContext, zendeskUrl, appId, clientId);
Chat.INSTANCE.init(appContext, chatKey, chatAppId);
Support.INSTANCE.init(Zendesk.INSTANCE);
this.setUserIdentity(options);

在日志中,当我打开聊天时,我有这样的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I/okhttp.OkHttpClient: --> POST https://id.zopim.com/authenticated/web/jwt (318-byte body)
I/ReactNativeJNI: Memory warning (pressure level: TRIM_MEMORY_RUNNING_CRITICAL) received by JS VM, running a GC
I/okhttp.OkHttpClient: <-- 400 https://id.zopim.com/authenticated/web/jwt (2412ms, 63-byte body)
W/JwtLoginDetailsProvider: Error fetching authentication token. There may be an issue with your JWT. Chat will proceed unauthenticated: 400

当我打开帮助中心的时候:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I/okhttp.OkHttpClient: --> GET https://<company>.zendesk.com/hc/api/mobile/fr/article_tree.json?category_ids=&section_ids=&include=categories%2Csections&limit=5&article_labels=&per_page=1000&sort_by=created_at&sort_order=desc
I/okhttp.OkHttpClient: --> POST https://<company>.zendesk.com/access/sdk/jwt (22-byte body)
I/okhttp.OkHttpClient: <-- 403 https://<company>.zendesk.com/access/sdk/jwt (3350ms, unknown-length body)
I/okhttp.OkHttpClient: <-- 400 Response body was null, failed to auth user. https://<company>.zendesk.com/hc/api/mobile/fr/article_tree.json?category_ids=&section_ids=&include=categories%2Csections&limit=5&article_labels=&per_page=1000&sort_by=created_at&sort_order=desc (3359ms, 2-byte body)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-27 05:38:38

我找到了解决办法,如果有人带着同样的问题到这里来的话。

事实上,我确实有很好的配置和工作。我唯一的错误是我用同一封电子邮件来识别我在应用程序中的客户和我的zendesk管理员.

就这样。祝你今天愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71494215

复制
相关文章
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.1K0
简单实现微信分享(不集成SDK)
好啦,分享到QQ、微博等等平台也可以参考这种方法哦,完全没必要费时间申请集成三方SDK!
longzeqiu
2020/04/02
2.1K1
Zendesk与微服务维护的艺术
Zendesk 是用 MySQL 数据库建立的单体 Rails 应用程序,在公司自有硬件上的共址数据中心中运行。但随着公司规模扩大,“我们意识到:把越来越多的东西塞到一个单体 Rails 上会拖慢团队的速度,”高级总工 Jon Moter 说:“部署真的很难,风险也很大。”公司决定搬到微服务和容器上,但还是要找到一个能够顺利实施的方法。
CNCF
2020/01/16
1.1K0
Zendesk与微服务维护的艺术
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
开发SDK的使用教程【面试+工作】
开发SDK的使用教程【面试+工作】 最近很多人反映工作中SDK不会用, 这个说实话不是个难点,只是你不敢操作。 下面以TFS使用和阿里SDK做教程 ---- TFS SDK使用 一、下载必要的软件 - Eclipse安装程序 http://www.eclipse.org/ - JDK http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 二、创建Java项目,并
Java帮帮
2018/06/11
4K0
128 天不上班不工作:照样领工资 9.5 万
原告:北京和风畅想科技有限公司 被告:杜某,男,1988年出生 和风畅想公司向法院提出诉讼请求: 1、判决无须撤销《解除劳动关系通知书》,双方无需继续履行劳动合同; 2、判决和风畅想公司无须向杜某支付自2020年2月29日至2020年7月5日期间工资收入损失95172.41元。 事实和理由: 2020年11月2日,和风畅想公司收到北京市朝阳区劳动人事争议仲裁委员会作出的京朝劳人仲字[2020]第16281号裁决书(以下简称“第16281号裁决书”),和风畅想公司不服该裁决。 不服裁决理由: 一、第1628
云头条
2022/10/09
2.2K0
128 天不上班不工作:照样领工资  9.5 万
Snips推出语音助手SDK,支持离线工作
Snips是一家法国初创公司,其提供的服务主要是为用户建立自定义语音助手。Snips并不使用亚马逊的Alexa语音服务或谷歌助手SDK,而是帮助用户建立自己的语音助手,并嵌入到设备上。此外,由于这个语
BestSDK
2018/03/02
4K1
Snips推出语音助手SDK,支持离线工作
webpack的watch选项不工作原因分析
今天尝试将以前创建的一个前端项目改为webpack编译,该项目使用了VueJS v2.0,原来是编写gulp脚本完成构建的。很自然就直接用vue-cli来搞定这个事了。 使用vue-cli创建项目 因为以前用过webpack,而vue-cli创建的项目底层其实还是使用webpack构建的,所以使用起来还是很简单的。 # 使用yarn,这个命令是跟npm兼容的,但速度快很多,而且可以保证依赖包版本的一致性,强烈推荐 yarn install --global vue-cli vue-cli webpack v
jeremyxu
2018/05/10
4.1K0
mongo minio on openebs 工作量不饱满教程
作者 | 老根 - laf框架作者 笔者在开发laf(https://github.com/lafjs/laf)的过程中依赖了mongo minio这些组件,本文就如何对这些组件最佳实践来做个介绍。
sealyun
2022/05/16
3.8K0
mongo minio on openebs 工作量不饱满教程
C++都从事哪些工作能挣钱不?
java大行其道的今天我们来谈谈c++,现在学c++的人越来越少了。问题在哪?互联网盛行的年代,能吸引眼球的就是能赚钱的。所以一看招聘,发现做java开发是抢手货,起步价比c++高。 再则学习c++难度都比其它语言较高。而它的学习难度,太复杂性。现在c++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替c++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器,网络等。 一、游戏开发 游戏开发都有哪些,引擎开发(
程序员互动联盟
2018/03/15
2.7K0
C++都从事哪些工作能挣钱不?
为什么不建议你国庆前找工作
最近在面试过程中,以上内容就是简历的问题。打算换工作或正在找工作的朋友,可以参考一下。
李才哥
2019/09/25
3.9K0
远程桌面失败:你的凭据不工作
  然后按照以下操作,将默认设置“仅来宾—本地用户以来宾身份验证”,更改为“经典:本地用户以自己的身份验证”。
chenchenchen
2019/09/03
9.7K0
远程桌面失败:你的凭据不工作
身价百亿的Zendesk:创业,从一个小目标开始
来源 / ToB行业头条 (ID:wwwqifu) 作者 / 不二 · 编辑 / 海阳
ToB行业头条
2022/11/17
4100
身价百亿的Zendesk:创业,从一个小目标开始
一位可以不吃不喝不眠的腾讯安防工作者
2018年,我们在第四届腾讯数据中心分享日上,推出了“腾讯智维”。它将近20年数据中心运营经验与云化技术相结合,是一款腾讯自研的数据中心管理软件平台。腾讯强大的技术研发实力,安全保障能力,帮助客户持续提升数据中心运营的质量与效率,降低成本投入,将数据中心的价值极大化。 这一年来,腾讯智维伴随客户一起成长,我们对客户的需求也有了更深入更全面的了解,腾讯智维也在多方面进行着进化。为了更好地满足日益迫切的安全需求,腾讯数据中心联合安全平台部,紧密结合IDC机房的监控场景,共同打造出一套IDC机房智慧安防解决方案
腾讯数据中心
2019/06/26
2.9K0
一位可以不吃不喝不眠的腾讯安防工作者
为什么我不建议你通过 Python 去找工作?
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
黄啊码
2022/06/20
2.8K0
为什么我不建议你通过 Python 去找工作?
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
沉默王二
2020/05/26
2.7K0
解决宝塔nginx防火墙启动后nginx不工作
一套流程下来,发现安装nginx防火墙之后nginx直接关停,无法启动,重载配置也无果。试着卸载防火墙并重启nginx成功。论坛上也没有具体解决方案,官方人员只是说规则配置问题,要去加他们技术。不得不说,还挺牛.
jcjyxjs
2021/09/04
2.9K0
python的dropna函数_Pandas dropna()函数不工作「建议收藏」
prison_data = pd.read_csv(‘https://andrewshinsuke.me/docs/compas-scores-two-years.csv’)
全栈程序员站长
2022/10/02
2.8K0
点击加载更多

相似问题

Zendesk列表终结点不工作

11

DRF django-rest框架-simplejwt JWTAuthentication不工作

15

Zendesk SDK与API

12

drf_yasg rest_framework_simplejwt JWTAuthentication不工作

121

ZenDesk API调用来自NetSuite的不工作

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文