我有这个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);
请帮助我,因为它让我发疯:(
答案 0 :(得分:1)
您似乎正在尝试通过http(例如,网络上的端口号80)进行通信。看一下你想要做的How to do HTTP authentication in android?。
如果您坚持使用键/值对使用SharedPreferences
为每个http请求附加凭据,则更有条理以满足您的目的。因此,一旦从响应中获取这些值,请将它们存储在:
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);
答案 1 :(得分:0)
Yii将信息保存在服务器上的$ _SESSION变量中(可能还存在于cookie中,但我无法回想起来)但是你没有保存它。