2016-10-11 9 views
1

私は、Auth0のログインのWeb実装を遵守するために、私のアプリケーションのログインプロセスの一部としてAuth0のロックを統合しています。Android Auth0ロッククリアキャッシュ

私はLock (Android)リポジトリのREADME.mdの指示に従っており、問題なくGoogleにログインできます。

私が直面している問題は、Auth0またはLockに私がユーザーをログアウトしたことを示すことができないということです。そのため、再度ログインするアカウントを選択するように求められません-ログイン。私は現在SharedPreferencesに自分のセッション情報を保存しています。私の現在のログアウト手順は、そのデータを消去することです。私はログイン画面のUIに戻ることができますが、GoogleアイコンをタッチしてGoogle経由でログインするとすぐに、Auth0は以前にログインしたユーザーに対して認証します。

Auth0のロックでキャッシュをクリアする方法はありますか?

答えて

0

Android Quickstartガイド、具体的には、session handlingについては、ログイン後にユーザーセッションを維持する方法の1つについて説明しています。

セッション処理の最後のセクションは、ログアウトを達成する方法です。サンプルコードは以下の通りです:

private void logout() { 
    // Clear credentials (depends on how you store them in the first place) 
    setUserCredentials(null); 

    // Navigate to Lock login screen 
    startActivity(new Intent(this, LoginActivity.class)); 
} 

setUserCredentialsは、その特定のサンプルに特異的であることを考えている、一般的な考え方は、あなたがどこかに受け取ったトークンを格納し、ユーザーがログアウトするオプションを提供していることだろうこれにより、トークンのクリーンアップとログイン画面へのリダイレクトがトリガーされます。

+0

私はクイックスタートガイドに従い、あなたが説明しているサンプルをダウンロードしました。私が見つけた問題は、 'CredentialsManager'クラスへの' setUserCredentials(null); 'メソッド呼び出しは、アプリケーションの' SharedPreferences'からのクレデンシャルだけをクリアすることでした。 Auth0ライブラリまたはLockライブラリのいずれかがそれらの共有プリファレンスを参照しているとは思われませんでした。あなたが提案した方法でクレデンシャルをクリアしたにもかかわらず、次回ログインしようとしたときにログインするGoogleアカウントを選択できませんでした。 – adamacdo

+0

私は推測以外のものを提供するためにAndroid SDKについての十分な知識がありませんが、アップデートではログイン画面にアクセスできると述べたが、Googleを選択すると自動的にログインするGoogleのソーシャルログインを選択すると、LockはGoogleに認証を委任するだけなので、これはGoogle固有のものである可能性があります。トラブルシューティングの目的でのみ、他の種類の認証(ユーザー名/パスワード)を使用してみてください。 –

+0

JoãoAngelo、私たちはあなたのアカウントでユーザー名/パスワード認証をセットアップしていません。ソーシャルログインのみを使用しています。これで、GoogleアカウントではなくFBアカウントでログインしようとしたところ、同じ問題が発生しました。私はアプリ内のウェブビュー用のクッキーをクリアしたwebviewキャッシュをクリアすることができました。これはLollipop +デバイスでも役に立ちましたが、ログインしたKitKatは別のアカウントでログインすることはできません、またはそのアカウントの資格情報を検証します。ログインすると、自動的にログインします。 – adamacdo