Dropbox数据存储API:可靠地确定用户是否经过身份验证

时间:2014-08-26 16:09:19

标签: java android authentication dropbox dropbox-api

问题

我正在使用Dropbox Datastore API在我的应用中存储信息。我试图找出一种可靠的方法来检查用户是否使用Dropbox进行身份验证。


目前我正在使用这个辅助功能:

public boolean isLoggedIn(Context context){
    LogHelper logHelper = new LogHelper();
    DbxAccount dropboxAcount = getDropboxAccountManager(context).getLinkedAccount();

    if(dropboxAcount == null){
        return false;
    } else{
        if(dropboxAcount.isLinked() && dropboxAcount.getAccountInfo() != null){
            return true;
        } else{
            return false;
        }
    }
}



此问题是,如果用户在登录后变为未经身份验证,例如,如果用户转到其保管箱设置并取消链接应用程序。发生这种情况时,上述功能将检测用户是否已登录,只有当您尝试执行需要身份验证的操作时(如写入数据存储区),dropbox api才会意识到用户未经过身份验证。

问题

是否有可靠的方法来确定用户是否使用Dropbox Datastore API进行了身份验证?

1 个答案:

答案 0 :(得分:2)

来自https://www.dropbox.com/developers/datastore/docs/android#com.dropbox.sync.android.DbxAccountManager.addListener

  

void addListener(AccountListener l)

     

添加将被调用的DbxAccountManager.AccountListener   每当链接新帐户或取消链接现有帐户时。   无论帐户是否,都会调用侦听器   使用DbxAccount.unlink()或Dropbox上的用户取消链接   网站。

此通知仍然可能仅在与服务器进行某些通信后才会触发,因为这是客户端知道应用程序之外发生的事情的唯一方法。