2016-04-27 6 views
1

Googleは、「ユーザーがサインアウトしたときにCredentialsApi.disableAutoSignIn()を呼び出して、すぐにサインインし直さないようにしています(...)」と書いています。Androidスマートロックパスワードのログアウト

これは何が起こるかです:

  1. ユーザーにのみ保存された1つの資格を持っています。彼がアプリに入ると、自動的にサインインされます。
  2. ユーザーがサインアウトし、CredentialsApi.disableAutoSignIn()が呼び出されました。
  3. ユーザーがアプリに入るたびに、自動的にサインインされるのではなく、選択者には1つのオプションしかありませんが、選択された資格情報のみが表示されます。

これは非常に面倒です。ユーザーがログアウトすると、再度ログインするたびに気にする必要はありません。彼が1つ以上の資格を持っていても。しかし、当面は、彼が1つの資格しか持っていない場合に焦点を当てましょう。

これは予期された動作ですか?私は1月にこの機能をテストしたときに、このようなものではなかったと確信しています。今、私はこの機能をプロダクションに入れようとしています。これが期待された動作であれば、おそらくユーザーがログアウトしたときに検出するために共有設定にフラグを格納する必要があります。

リクエストの認証機能はアプリの主なアクティビティにあり、私がそこに行くたびに、ダイアログの選択がログインを要求するように見えます。

答えて

0

残念ながら、あなたのアプリケーションでユーザー状態を維持する必要があります(この動作に最近変更はありませんでしたが、これはいつものようです)。

サインインアプリのためのオプションである場合は、ここで我々はいくつかのアプリが実装見てきたものだ:、

  • が、これは(共有設定で例えば)デバイス上の最初の実行であるかどうかを追跡しますそうであれば自動的にサインインを開始し、ピッカーを表示して、自動サインインが無効になっているか、複数のアカウントを持っている場合に1タップでサインインできるようにします。自動サインイン(例:ユーザーがウェブや他のデバイスにサインアップしてからアプリを開くと)、最初のruでないと結果を解決しないn(すなわち、

  • ユーザーが明示的にサインインアクションをトリガーする(つまりサインインボタンをクリックする)場合は、そのインテントを使用することができます。インテントは、または申し訳ありませんが、これはあなたの側で状態のビットを必要とし、彼らのアカウントに戻ってサインを助けるために再びAPIを呼び出し、または間のスイッチが

を占めます。 CredentialsApi.disableAutoSignIn()はサインインが無効になっている状態を設定しますが、アプリケーションへのユーザーのログイン状態(アプリケーション開発者のロジックに依存し、アプリケーションによって管理されている必要があります)をトラッキングしません。

希望を助ける/希望するコメントを残すことをお勧めします。これについてドキュメントにガイダンスを追加できるかどうかを確認します。

+0

ありがとうSteven。 同様のアプローチが実装されており、アプリケーションによって制御されるユーザー状態があります。 - ホームアクティビティでは、ユーザーが以前に手動でログアウトしていない限り、常にユーザーにサインインしてください。 - ログインアクティビティ(自宅とは別のアクティビティ)で、以前に手動でサインアウトした場合でも、常にサインインを試みます。 それだけです。 SharedPreferecesにはbooleanを格納し、状態を制御するには 'userHasSignedOut'しか格納しません。 – Rui

関連する問題