2017-08-18 13 views
0

Whatsappと同じ(パスワードなし)の登録機能を実装したいと思います。 私はたくさんの検索をしますが、最適な解決策を見つけられません。パスワードなしのユーザーをXMPPに登録

現在、私はデバイス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); 
     } 
+0

vitalysterの4番目のポイントはありますか? – Mohit

+0

パスワードなしで接続できましたか? – Mohit

答えて

0
  1. 私は被害者の電話番号とデバイスIDを入力した場合、彼として認証し、彼のメッセージを読むために何が?まず、sms/callを使用して、この電話番号に何らかの確認コードでアクセスできることを確認する必要があります。
  2. デスクトップまたはAppleデバイスで自分のアカウントにログインしたい場合はどうすればいいですか? AndroidデバイスのIDに頼ってはいけません。絶対にパスワードであってはいけません。ユーザーが新しいデバイスを追加したとき(確認の後!)、ユーザーの電話番号にリンクされたサーバー上のすべてのトークンを保持すると、ちょうどランダムなトークン文字列を作成できます。
  3. この場合、私のアプリはどのようにアカウントを作成しますか?認証コードを受け取ってパスワード文字列を生成するカスタムアプリケーションをサーバー上に用意する必要があります。
  4. 私のアプリはどのように認証されますか? XMPP標準ではプラグイン可能な認証フレームワーク(SASL)を使用しています。サーバーとクライアントのアプリケーションでは、「トークンベース」のSASLメカニズムを実装し、「パスワードベース」の代わりに使用する必要があります。
+0

はいOTPを使用してユーザーのモバイルを認証しています。あなたの4番目のポイントについてもっと詳しく教えてください。 – LearnPainLess

関連する問題