Domanda

Sto avendo problemi a mantenere l'utente Accedi per tutta la mia vita dell'app, il "Accedere" è sull'attività principale, quando avvia un'altra attività, sono ancora acceso e posso caricare i dati su Quickblox, maDopo aver iniziato un'altra attività e quindi avviare nuovamente l'Actity che ho caricato i dati su QuickBlox, ottengo errori quando provi a caricare i dati: "Token è richiesto" ...

Modifica:

 QBSettings.getInstance().fastConfigInit(String.valueOf(APP_ID), AUTH_KEY, AUTH_SECRET);
    QBUser user = new QBUser("login", "password");
    QBAuth.createSession(user, this, QBQueries.SIGN_IN);
.

È stato utile?

Soluzione

Penso che sia un altro problema

"Token è richiesto" significa che non hai creato sessione e cercando di eseguire altre query

Devi creare correttamente una sessione prima

        QBAuth.createSession(new QBCallbackImpl() {
            @Override
            public void onComplete(Result result) {
                if (result.isSuccess()) {
                    // do other requests here 
                    //
                } else {
                    handleErrors(result);
                }
            }
        });
.

Se non è un problema per te - Fornisci più codice nella tua domanda

UPD

1) Prova a controllare il token per null

try {
    String token = BaseService.getBaseService().getToken();
    if(token == null){
        // recreate session here
    }
} catch (BaseServiceException e) {
    e.printStackTrace();
}
.

Altri suggerimenti

Non sono sicuro di cosa utilizzare questa API che stai usando qui, ma se vuoi un suggerimento alternativo, ho sempre utilizzato SharedPreferences per salvare le sessioni utente.

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username); // Save the username with tag "username"
editor.putString("password", password); // Save the password with tag "password"
editor.commit();
.

e per ottenere informazioni sull'utente indietro:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
u = settings.getString("username", null);
p = settings.getString("password", null);
if(u == null && p == null) {...} // No saved user session, have user sign in
else {...} // User already logged in, go to main screen 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top