Вопрос

У меня проблемы с проблемой, чтобы пользователь войти в систему для всего моего срока службы приложения, «Войти» находится на основной активности, когда начать другое действие, я все еще в системе, и я могу загрузить данные в QuickBlox, ноПосле того, как я начну другой активность, а затем снова запустите активию, которую я загрузил данные в QuickBlox, я получаю ошибку при попытке загрузки данных: «Требуется токен» ...

Редактировать:

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

Это было полезно?

Решение

Я думаю, что это еще одна проблема

Требуется токен

"означает, что вы не создали сеанс и пытаясь выполнить другое запрос

Вы должны правильно создать сеанс первым

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

Если это не проблема для вас - пожалуйста, предоставьте больше кода в вашем вопросе

<Сильные> UPD

1) Попробуйте проверить токен для NULL

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

Другие советы

Я не уверен, как использовать этот API, вы используете здесь, но если вы хотите альтернативное предложение, я всегда использовал SharedPreferences для сохранения сеансов пользователей.

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();
.

и чтобы получить информацию о пользователе:

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 
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top