【发布时间】:2011-10-27 05:55:03
【问题描述】:
我正在尝试向使用 Devise gem 的服务器 ruby on rails 应用程序验证 android 客户端应用程序。但我已经尝试过 http 身份验证,并发布请求进行身份验证,服务器只对任何给定的用户名/密码响应 200。
我已经在用户模型中设置了 config.http_authenticable = true 和 :database_authenticable...
我会发布我的身份验证方法,所以你们可以看看它......
public static boolean authenticate(User user, String verb) throws IOException, JSONException
{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(verb);
CredentialsProvider credProvider = new BasicCredentialsProvider();
credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials(user.getMail(), user.getPassword()));
httpClient.setCredentialsProvider(credProvider);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", user.getMail()));
nameValuePairs.add(new BasicNameValuePair("password", user.getPassword()));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
int statusCode = httpResponse.getStatusLine().getStatusCode();
//JSONObject resp = null;
if (statusCode < 200 || statusCode >= 300){
throw new IOException("Error");
}
return true;
}
【问题讨论】:
标签: android ruby-on-rails devise http-post http-authentication