有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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设置并取消应用程序的链接。当发生这种情况时,上述函数将检测到用户已登录,只有当您尝试执行需要身份验证的操作(如写入数据存储)时,dropbox api才会意识到用户未经身份验证。

问题

是否有可靠的方法来确定用户是否通过Dropbox数据存储API进行了身份验证


共 (1) 个答案

  1. # 1 楼答案

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

    void addListener(AccountListener l)

    Adds an DbxAccountManager.AccountListener which will be called whenever a new account is linked or an existing account is unlinked. The listener will be called regardless of whether the account was unlinked using DbxAccount.unlink() or by the user on the Dropbox website.

    此通知可能只有在与服务器通信后才会发出,因为这是客户端知道应用程序之外发生了什么的唯一方法