sábado, 10 de octubre de 2015

IMPLENTAR LOGIN DESDE APLICACIÓN ANDROID CONSUMIENDO SERVICIO REST


En este nuevo sprint se integró la funcionalidad del  login dentro de la aplicación Reactor Nuclear , esto se hace que por medio del  consumo de un servicio web el cual se le deben enviar los parámetros de usuario y clave y si estos coinciden con los registrados previamente en el sistema retornará el token de seguridad. Este token servira  como parámetro de autorización para realizar consultas posteriores.

Como se menciono anteriormente Android ofrece una librería que permite el consumo de Web Services restful por medio httpClient.  El servicio de login también se construyo con esta misma librería implementando el uso de  httpPost,  el código Java donde se realiza la validación del login es el siguente :

private static String serviceToken = "http://info1rs2.azurewebsites.net/token";
private static HttpClient httpClient;
private static HttpPost httpPost;

public static String consultarLogin(Login login) {
    String lToken       = "";
    CharSequence lError = "error";
    if (httpClient == null) {
        httpClient = new DefaultHttpClient();
    }
    if (httpPost == null) {
        httpPost = new HttpPost(serviceToken);
        httpPost.setHeader("content-type", "application/json");
    }

    try {

        List<NameValuePair> pair = new ArrayList<NameValuePair>();
        pair.add(new BasicNameValuePair("grant_type", "password"));
        pair.add(new BasicNameValuePair("username", login.getUsuario()));
        pair.add(new BasicNameValuePair("password", login.getClave()));
        httpPost.setEntity(new UrlEncodedFormEntity(pair));
        HttpResponse response = httpClient.execute(httpPost);

        String respStr = EntityUtils.toString(response.getEntity());

        if (respStr.contains(lError)){
            return lToken;
        }
        JSONObject responseJSON = new JSONObject(respStr) ;
        lToken = responseJSON.getString("access_token");


        return lToken;
    } catch (Exception ex) {
        Log.e("consultarToken", ex.getMessage());
    }
    return lToken;

}

Para las pruebas de este desarrollo se evaluaron inicialmente los siguientes escenarios :

1. El usuario intenta ingresar a la aplicación pero no tiene conexión a internet :





2.  El usuario ingresa credenciales erróneas :








3.  El usuario ingresa las credenciales correctas:









No hay comentarios:

Publicar un comentario