我需要一些有关 Zendesk 的 Android 应用程序单点登录的帮助。它使用 JSON Web Tokens,我不知道如何在我的 android 项目中实现这些。Zendesk 团队提供了一些不同语言的示例 jwt,但我不知道如何使用它们并执行它们。
问问题
379 次
1 回答
2
首先,如果您想使用 JWT 身份验证,您的项目必须有用户数据库的后端。并且在这个后端必须实现 JWT 端点。它是您的应用程序用来验证用户的 URL。
因此,如果您拥有所有这些东西,请转到 Zendesk 管理面板。在左侧选择“Mobile SDK”,然后创建新的移动应用程序。它会在您的应用程序中生成用于初始化 Zendesk 的代码。像这样:
ZendeskConfig.INSTANCE.init(this, "https://yoursite.zendesk.com", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "mobile_sdk_client_xxxxxxxxxxxxxxxxx", new ZendeskCallback<String>() {
@Override
public void onSuccess(String result) {
}
@Override
public void onError(ErrorResponse error) {
}
});
在这样的初始化之后,您可以像这样使用匿名用户识别:
Identity anonymousIdentity = new AnonymousIdentity.Builder()
.withEmailIdentifier(authManager.getClient().email)
.withNameIdentifier(authManager.getClient().firstName)
.build();
ZendeskConfig.INSTANCE.setIdentity(anonymousIdentity);
但是,在您在管理面板中输入 JWT 端点之前,JWT 身份验证将不起作用。您可以在我们在 Zendesk 中添加新应用程序的确切位置看到使用哪种类型的授权设置,但在下面一点。
因此,您选择身份验证方法 - JWT。在您的站点上输入用于用户身份验证的端点。从哪里获得这样的网址?在您的后端人员中询问它。这不是安卓的可能性。
经过这么长时间的操作,您现在可以像这样使用 JWT 身份验证:
Identity jwtUserIdentity = new JwtIdentity("JWT User Identifier");
ZendeskConfig.INSTANCE.setIdentity(jwtUserIdentity);
例如,删除“JWT 用户标识符”并使用用户的电子邮件。但 zendesk 不建议使用可预测的东西,如电子邮件或用户 ID。最好使用用户登录后应用程序将拥有的用户访问令牌。但在 zendesk 的测试示例中,他们使用的正是电子邮件 =)
如果我解释的不是很清楚,您可以阅读文档并在此处查看 android 应用程序示例:
于 2015-09-25T08:14:18.800 回答