Implementar un login con un servicio web

Creación de un Login en Android con webservices JSON

Video: Implementar un login con un servicio web

¿Cómo crear un login en Android studio? para crear usaremos la dependencia httpclient loop, por lo sencilla de implementar para comunicarse con el servidor

La autenticación en cualquier aplicación es esencial, es por ello que no he querido dejar de lado implementarla para esta app.

La implementación del login es muy básica pero lo suficiente para que funcione nuestra app lector qr.

Login en Android con Servicios web

Antes de ello debemos realizar algunas modificaciones a la base de datos Mysql en el servidor local. Esencialmente debemos agregar un nuevo campo a la tabla login, este campo se llama nivel el cual almacenará un valor numérico sea 0 para el administrador y 1 para cualquier cliente que ingrese desde la app.

Una vez hecho estos cambios, debemos implementar un archivo apilogin.php dentro de la carpeta procesos de nuestro proyecto web, en él se establecerá el proceso de autenticación del cliente desde la app móvil, su función es recibir tres parámetros de tipo post, autenticar al usuaario y dar una respuesta JSON satisfactoria o no, en una variabel success.

Código de apilogin.php para la app 

<?php
//btnlogin
//txtemail
//txtpassword
$response = array();
if(isset($_POST['btnlogin'])):
    require "../class/conexion.php";
    $user= new ApptivaDB();
    $email      =   $_POST['txtemail'];
    $password   =   md5($_POST['txtpassword']);
    $data       =   "email='".$email."' AND password='".$password."'";
    $u=$user->buscar("login",$data);
    if($u):
        foreach($u as $data):            
            $response['nombre']=$data['nombre'];                        
            $response['success']=true;
        endforeach;
    else:
        $response['nombre']="";
        $response['success']=false;
    endif;
endif;
die(json_encode($response));

 

Login en Android LoginActivity

Modificando el xml de login

........

Aplicando lógica al login con Java

Agregando interactividad, pues declaramos y casteamos los campos de texto EditText y el widget Button, implementamos el método onclicklistener para el boton btnlogin y dentro realizamos la validación de los campos vacios o no.

Si se ha llenado correctemente los datos, entonces creamos un función para la estructura asyncrona donde realizaremos una petición al servidor enviando tres parámetros que son btnlogin, txtemail y password. 

Veamos el código Java

public class LoginActivity extends AppCompatActivity {

    private Button btnlogin;
    private EditText txtemail, txtpassword;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        btnlogin= findViewById(R.id.btnlogin);
        txtemail= findViewById(R.id.txtemail);
        txtpassword= findViewById(R.id.txtpassword);
        btnlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(txtemail.getText().toString().isEmpty())
                    Toast.makeText(getApplicationContext(),"Ingrese email",Toast.LENGTH_LONG).show();
                else if(txtpassword.getText().toString().isEmpty())
                    Toast.makeText(getApplicationContext(),"Ingrese password",Toast.LENGTH_LONG).show();
                else
                    login(txtemail.getText().toString(),txtpassword.getText().toString());
            }
        });
    }

    private void login(String email,String password) {

        RequestParams params = new RequestParams();
        params.put("btnlogin", "ok");
        params.put("txtemail", email);
        params.put("txtpassword", password);

        AsyncHttpClient client = new AsyncHttpClient();
        client.post("http://localhost/QR/procesos/apilogin.php", params, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                // verificar el success = 0 / 1

                // crear las  preferencia

            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                // error
            }
        });


    }
}

............

 


Implementar un login con un servicio web

¿Quieres tener acceso al código fuente completo del proyecto final?

Contenido premium

COMPRAR AHORA

200 visitas | Publicado hace 4 meses

© Todos los derechos reservados | codea.app | Comunidad de programación web y desarrollo de aplicaciones móviles | Perú 2019