我有这个 Android 应用程序,用户可以从中登录并注册 Yii
登录和注册工作正常,但是当我发送其他请求(例如编辑帖子和其他内容)时,Yii 不记得用户,就像用户从未登录过一样。
现在我需要在应用程序中保存哪些信息并随每个请求一起发送,以便 Yii 知道该用户之前已经登录过。
这是我随登录请求发送的信息:
ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("email", signinEmail.getText().toString()));
nameValuePair.add(new BasicNameValuePair("password", signinPassword.getText().toString()));
HttpRequest siginRequest = new HttpRequest();
JSONObject signinResult = siginRequest.post("users/signin", nameValuePair);
请帮助我,因为它让我发疯:(
最佳答案
您似乎正在尝试通过 http(例如端口号 80)在网络上进行通信。看看How to do HTTP authentication in android?这涵盖了您想做的事情。
如果您坚持使用键/值对将凭据附加到每个 http 请求,使用 SharedPreferences
更有条理地满足您的目的。因此,一旦从响应中获取这些值,请将它们存储为:
SharedPreferences apiVals = getSharedPreferences("credentials", MODE_PRIVATE);
apivals.edit()
.putString("authToken", authToken)
.putString("Session", SessionId)
.commit();
用于检索:
SharedPreferences apiVals = getSharedPreferences("apiVals", MODE_PRIVATE);
String authToken = apiVals.getString("authToken", null);
关于java - 在 Yii 中对 Android 用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552956/