如何让用户登录应用程序生活?

时间:2014-01-10 15:35:59

标签: java android quickblox

我有问题让用户在我的所有应用生活中都登录,“登录”在主要活动上,当启动另一项活动时我仍然可以进入并且我可以将数据上传到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);

2 个答案:

答案 0 :(得分:1)

我认为这是另一个问题

“令牌是必需的”意味着您没有创建会话并尝试执行其他查询

您必须先正确创建会话

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

如果这不是您的问题 - 请在您的问题中提供更多代码

<强> UPD

1)尝试检查令牌为空

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

答案 1 :(得分:0)

我不确定您在此处使用此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