2017-07-27 6 views
1

Firebase Phone AuthでAndroidの「インスタント認証」(自動サインイン)を無効にする方法はありますか? verifyPhoneNumberのタイムアウトを0(参照:https://firebase.google.com/docs/reference/android/com/google/firebase/auth/PhoneAuthProvider.html)に設定することによって、「自動検索」を無効にする方法があります。しかし私は瞬時の検証を無効にするための文書化された方法を見つけることができません。Firebase Phone認証を無効にする方法Android自動サインイン(onVerificationCompletedコールバック)

潜在的なセキュリティ上の問題のため、私は尋ねています:SIMカードをデバイスから取り外しても、そのユーザーは自動サインインします!つまり、別の人の古いデバイスを使用しているユーザーは、古い電話番号を使用してサインインすることができます。ここでは再生手順は次のとおりです。

  • 機能SIMカード
  • これがトリガーとなるSIMカード
  • に関連付けられた番号使用中
  • ログイン自動サインインしてデバイス上で、Androidの上にある
  • ターンデバイスをオフにサインアウトし、SIMカードの背中を
  • ターンデバイスを削除し、その同じ番号
でログインする試み0

観察された行動: ユーザーが

期待される動作適切なSIMカードを持っていないにも関わらず、で、自動署名されている:ユーザーのデバイスは、彼らが、入力した電話番号に関連付けられているSIMカードを持っていない場合 自動的にサインインされず、その番号にSMSテキストメッセージが送信されます。

+0

削除されたSMSのテキストメッセージを使用して端末からGoogleアカウントからログアウトし、もう一度やり直してください。 – bojeil

+0

ログアウトが機能しませんでした。私はそれを動作させるために、工場出荷時のリセットでデバイスを拭く必要がありました。 (Samsung Galaxy Grand Primeでテスト済み) – ian

答えて

5

アップデート、11.5.09はほぼすべてのユーザーのデバイスに届きました。インスタント検証は、SIMカードの変更後に停止されます。また、このトリックを手動テストの目的で使用することもできます。後半Q3を予定し、今後のGoogle Playサービスv11.5のリリースで


、SIMカードの変更は、自動検出作業から瞬時に検証を停止しますとなります。新しいリリースはユーザーのデバイスに自動プッシュされ、SDKの変更は不要です。

最高のUXとオプトインレートを得るには、恐怖のランタイムアクセス権を自分で追加するのではなく、Playサービスの更新を待つ方がいいです(電話番号を読み、比較する)。お待ち頂きまして、ありがとうございます!

+0

手動でコードを検証して自分のコードをテストする方法はありますか? onVerificationCompletedは常に –

+1

と呼ばれます@pavelPoley現在のデバイスにない電話番号を使用できます –

0

あなたはこれにより、デバイスで使用する電話番号を取得することができます。

TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); 
String mPhoneNumber = tMgr.getLine1Number(); 

し、必要な権限を追加します

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

は、このようなFirebaseAuthから電話番号を取得する:

String number = FirebaseAuth.getInstance().getCurrentUser().getPhoneNumber(); 

それらの間で比較しても大丈夫なら、それ以外の場合はを使用してSMSを送信してくださいまたはそのようなサービス

+0

Twilio SMSには何を入れますか? Firebase Phone Authは認証コードを制御します。 2つの認証メカニズムがありますか?それは巨大な痛みのように聞こえる。私たちがFirebase Phone Authで行った理由は、独自のカスタム認証を書く必要がないためです。 – ian

関連する問題