Existen diferentes tipos de mecanismos soportados por HTTP que permiten la identificación del usuario para controlar el acceso a paginas web o recursos.

En esta ocasión hablaremos del mas sencillo el cual se conoce como Basic Authentication. Es importante mencionar que este tipo de autenticación se debe utilizar con HTTP’s ya que es fácil de interpretar.

Basic Authetication

Con este método el cliente envía las credenciales como usuario y contraseña codificado en base64.

Si el servidor recibe un HTTP Request sin identificar para un recurso que se encuentra protegido puede forzar a usar Basic Authetication rechazando el request con el código 401.

Al intentar de nuevo el request se debe agregar un header
Authentication.

POST /recurso/ HTTP/place
Host: www.api.com
Authorization: Basic usuario:contraseña (base64)

Implementar Basic Authentication

Utilizar Basic Authentication en nuestro proyecto Android Studio es mas sencillo de lo que aparenta.

Lo primero que tenemos que realizar es nuestra interfaces de la llamada, en la cual debemos colocar en el @Header el atributo Authorization.

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface iUserService {
    @Headers({
               "Accept: application/json"
       })
@POST("https://mi API")Call<ModeloLogin> Token(@Header("Authorization") String authHeader );
    }

El siguiente paso es crear la llamada para lo cual necesitamos conformar el String authHeader , el cual contendrá el usuario y la contraseña anteponiendo la palabra Basic.

Basic usuario:contraseña (Base64)

String userName = "usuario";
String password = "contraseña";
String base = userName + ":" + password;

String authHeader = "Basic " + Base64.encodeToString(base.getBytes(), Base64.NO_WRAP);

Retrofit retrofit = new Retrofit.Builder().baseUrl(Url Recursos).addConverterFactory(GsonConverterFactory.create()).build();
iUserService userService = retrofit.create(iUserService.class);
Call callUser = userService.Token(authHeader);

De esa manera implementamos Basic Authentication en nuestro request. Es sencillo de realizar, pero no es la única forma de autenticación que podemos utilizar.

Comenten en los comentarios si has utilizado esta u otro mecanismo soportado por HTTP.

por Esther Lopez

Programadora, Experiencia en educación para niños en el ámbito de la robótica, conferencista y activista en grupos donde enseñen programación a mujeres y niños de forma fácil.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

%d