Configurar la autenticación de http

Estoy tratando de autenticar una aplicación de cliente de Android a mi servidor de ruby ​​on rails aplicación que utiliza gem de Devise. Pero he intentado la autentificación del HTTP, y las peticiones del poste para authenticar, y el servidor apenas responde 200 para cualquier username / contraseña dado.

Ya he configurado el config.http_authenticatable = true y el: database_authenticable en el modelo de usuario …

Voy a publicar mi método de autenticación para que u chicos puedan echarle un vistazo …

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; } 

Si el servidor está respondiendo 200, realmente suena como la configuración del lado del servidor, por lo que debe comprobar de nuevo sus URL están realmente protegidos, utilizando un navegador web de escritorio y una herramienta como Fiddler para que pueda ver todo. Preste especial atención a los encabezados de autenticación y los códigos de estado; En el menos usted debe ver un 401 del servidor para comenzar cosas apagado.

También puede activar los diagnósticos de Apache HTTP en su dispositivo y también volcará los encabezados y el contenido a LOGCAT para que pueda asegurarse de que todo esté en proceso.

Compruebe el contenido de la cabecera de WWW-Autnenticate, él especificará qué esquemas son aceptados. El cliente volverá a solicitar la URL, pero pondrá el encabezado de autorización en su solicitud.

En resumen, asegúrese de que su lado del servidor funcione fuera de su aplicación, en un entorno que sea más fácil de solucionar.

Cliente, parece que sólo está activando la autenticación BASIC (todos dejan de usarla!), Y su punto final sólo puede querer DIGEST o NTLM o KERBEROS o cualquier otro esquema de autenticación que BASIC . Dado que parece que no configuró SSL, sin duda utilizar por lo menos DIGEST o tiene problemas de texto claro!

El uso de variables de formulario (para autenticación) sólo funciona en el nivel de aplicación y no en el nivel de protocolo HTTP, que utiliza los encabezados HTTP (Autenticación WWW, Autorización) y códigos de estado (401, 403) para el proceso de autenticación. Y otra vez, si no está configurando su servidor (y cliente) para SSL-solamente, habrá problemas claros del texto.

  • Grape Rails API con Android
  • ¿Qué método de autenticación debo usar con la gema Sorcery usando una aplicación móvil?
  • Api de Rails y autenticación nativa de aplicaciones para móviles
  • La mejor práctica al permitir que sólo la aplicación de Android acceda a Rails API
  • MultipartEntityBuilder para enviar imágenes al servidor de carril
  • ¿Cómo usar doorkeeper con un cliente android?
  • ActionController InvalidAuthenticityToken en Api :: V1 :: UsersController # create
  • Retrofit @Body apareciendo como parámetro en la petición HTTP
  • Mover la aplicación web existente en una aplicación de teléfono nativa mediante un contenedor de navegador
  • Subida de imagen de Base64 VS ¿Subida de imagen binaria?
  • ¿Qué puedo usar para permitir que una aplicación de Android se comunique con una aplicación de rails
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.