在 XMPP 中注册无密码用户



我想实现与Whatsapp相同的注册功能(没有密码(。 我搜索了很多,但没有得到最好的解决方案。

目前我正在使用设备 ID 和密码来注册用户,并且工作正常。 但是,如果用户注销或想从其他设备登录,那么我如何使用新的设备 ID 继续它们?

我当前获取设备ID和注册用户的代码:

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
return;
}
String androidId = telephonyManager.getDeviceId();
AccountManager accountManager = AccountManager.getInstance(xmpptcpConnection);
try {
Localpart from = Localpart.from(mobileNumber);
if (accountManager.supportsAccountCreation()) {
accountManager.sensitiveOperationOverInsecureConnection(true);
accountManager.createAccount(mobileNumber, androidId);
}
} catch (Exception e) {
throw new SmackInvocationException(e);
}
  1. 如果我输入受害者的电话号码和设备 ID 以验证他的身份并阅读他的消息怎么办?首先,您需要通过短信/电话验证我是否可以使用一些验证码访问此电话号码。
  2. 如果我想使用台式机或 Apple 设备登录我的帐户,该怎么办?您不应该依赖Android设备ID,绝对不应该是密码。当用户添加新设备时(验证后!(,您可以只创建随机令牌字符串,并将服务器上的所有令牌保留链接到用户电话号码。
  3. 在这种情况下,我的应用将如何创建帐户?服务器上应该有一个自定义应用程序,该应用程序接收验证码并生成密码字符串。
  4. 我的应用将如何进行身份验证?XMPP 标准使用可插入身份验证框架 (SASL(,服务器和客户端应用应实现一些"基于令牌"的 SASL 机制,并使用它而不是"基于密码"。

最新更新