Comment garder l'utilisateur Connexion à l'adresse de la vie?
Question
J'ai un problème pour garder l'utilisateur à vous connecter à toute ma vie d'application, le "Connexion" est sur l'activité principale, lors de la démarrage d'une autre activité, je suis toujours logé et je peux télécharger des données sur QuickBlox, maisAprès avoir démarré une autre activité, puis recommencez l'activy que j'ai téléchargé les données sur QuickBlox, j'obtiens une erreur lorsque vous essayez de télécharger des données: "Token est requis" ...
EDIT:
QBSettings.getInstance().fastConfigInit(String.valueOf(APP_ID), AUTH_KEY, AUTH_SECRET);
QBUser user = new QBUser("login", "password");
QBAuth.createSession(user, this, QBQueries.SIGN_IN);
La solution
Je pense que c'est un autre problème
"Token est requis" signifie que vous n'avez pas créé de session et que vous essayez d'effectuer une autre requête
Vous devez créer correctement une session d'abord
QBAuth.createSession(new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// do other requests here
//
} else {
handleErrors(result);
}
}
});
Si ce n'est pas un problème pour vous - veuillez fournir plus de code dans votre question
upd
1) Essayez de vérifier le jeton pour NULL
try {
String token = BaseService.getBaseService().getToken();
if(token == null){
// recreate session here
}
} catch (BaseServiceException e) {
e.printStackTrace();
}
Autres conseils
Je ne suis pas sûr de savoir comment utiliser cette API que vous utilisez ici, mais si vous souhaitez une suggestion alternative, j'ai toujours utilisé SharedPreferences
pour enregistrer des sessions utilisateur.
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();
et pour récupérer les informations utilisateur:
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