在Yii中验证来自android的用户

时间:2014-12-18 18:06:29

标签: java php android authentication yii

我有这个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);

请帮助我,因为它让我发疯:(

2 个答案:

答案 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中,但我无法回想起来)但是你没有保存它。