2016-10-11 32 views
1

我将Auth0的锁定作为我的应用程序登录过程的一部分,以坚持Auth0登录的Web实现。Android Auth0锁定清除缓存

我按照Lock (Android)存储库的README.md中的说明操作,我可以在没有问题的情况下使用Google登录。

我面对的问题是,我无法指示Auth0或锁定我已经登录了我的用户,所以我再也没有提示选择要登录的帐户,因为当我重新登录时-登录。我目前在SharedPreferences中存储我的会话信息,而我目前的注销过程是清除该数据。我可以导航回登录屏幕的用户界面,但只要触摸Google图标以通过Google登录,Auth0就会对我以前登录的用户进行身份验证,而不会提示我输入凭据。

有没有官方的方式来清除与Auth0的锁定缓存?

回答

0

我建议您遵循Android Quickstart指南,更具体地说,关于session handling的部分,它描述了登录后维护用户会话的一种可能方式。

会话处理部分的最后一节是关于如何实现注销。所提供的示例代码如下:

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后会自动登录。是否有机会这可能是谷歌特定的,因为当你选择谷歌社交登录锁定将委托身份验证到谷歌。尝试使用其他类型的身份验证(用户名/密码)仅用于故障排除目的。 –

+0

JoãoAngelo,我们没有使用用户名/密码认证设置和输出账户,我们只使用社交登录。就这样说,我试着用FB帐户登录而不是Google帐户,并且看到了同样的问题。我能够清除webview缓存,该缓存清除了应用内的网页浏览cookies,并帮助它在Lollipop +设备上运行,但我有一台运行KitKat的设备,一旦登录,它就永远不会提供使用其他账户登录的选项或者验证该帐户的凭据。登录时只需自动登录。 – adamacdo