Come mantenere l'utente Accedi per APP Life?
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);
. 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
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
.