Autenticación - 17 18 - G1

De Wiki de EGC
Revisión del 00:16 18 ene 2018 de Fedplagar (discusión | contribuciones) (Repositorio de GitHud)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Miembros

  • Raúl Romero Palomo.
  • Manuel Gómez Suárez.
  • Alejandro Polvillo Hall.
  • Federico Álvaro Plasencia García de Diego.
  • Tomas Ruan Rollan.
  • Francisco Javier Santos Velázquez.


Repositorio de GitHub

El repositorio de GitHub del equipo será accesible en este enlace Cualquier cambio o documentación importante añadida a él se notificará a los coordinadores en el momento.

Opera

El proyecto en Opera del grupo es accesible desde el siguiente enlace


Entorno

Para la realización del trabajo usaremos las siguientes herramientas:

  • certifi==2017.7.27.1
  • click==6.7
  • Flask==0.12.2
  • flask-marshmallow==0.8.0
  • Flask-SQLAlchemy==2.1
  • itsdangerous==0.24
  • Jinja2==2.10
  • MarkupSafe==1.0
  • marshmallow==2.14.0
  • marshmallow-sqlalchemy==0.13.2
  • mysqlclient==1.3.12
  • passlib==1.7.1
  • six==1.11.0
  • SQLAlchemy==1.1.15
  • Werkzeug==0.12.2
  • Python==3.6
  • Docker==1.17.1

EndPoints


EndPoint para comprobar cookies:

Url de entrada para comprobar cookies:

/cookies/{session_id}

Verbos:

Petición GET

Salida → Json con la siguiente información:

codigo:

0 → Si no existe la cookie en la base de datos
1 → La cookie existe en la base de datos y tiene un usuario asociado

status:

para Código 0 → "Cookie Incorrecta, no existe en la base de datos"
para Código 1 → "Cookie válida y existente en la base de datos"

usuario:

para código 0 → null
para código 1 → json con los datos de la cuenta de usuario asociado a la cookie.

Ejemplo Salida Cookie Válida:

   {
   "codigo": 1, 
   "status": "Cookie valida y existente en la base de datos", 
   "usuario": {
     "email": "imosciski@example.com", 
     "id": 3, 
     "password": "77d6ab52742226b77d651f0e12fa22ff6adda3b9", 
     "role_id": 2, 
     "username": "rickey.nolan"
     }
  }


Ejemplo Salida Cookie Incorrecta:

   {
   "codigo": 0, 
   "status": "Cookie Incorrecta, no existe en la base de datos", 
   "usuario": null
   }

EndPoint para asignar roles:

Url de entrada para asignar roles:

/users/{user_id}/role

Verbos:

Petición PUT

Entrada → Json con el nuevo role:

  {
   "role_id": 1
   }

Salida → Json con la siguiente información:

codigo:

0 → La Id de usuario no existe en la base de datos
1 → El role ha sido cambiado
2 → Role incorrecto, es diferente de 1 y 2


status:

para Código 0 → "Id de usuario incorrecta, no existe en la base de datos"
para Código 1 → "Role cambiado"
para Código 2 → "Role incorrecto, es diferente de 1 o 2"


usuario:

para código 0 → null
para código 1 → json con los datos de la cuenta de usuario asociado al ID.
para código 2 → null

Ejemplo Salida ID Válida:

  {
   "codigo": 1,
   "status": "Role cambiado",
   "usuario": {
       "email": "imosciski@example.com",
       "id": 3,
       "password": "77d6ab52742226b77d651f0e12fa22ff6adda3b9",
       "role_id": 2,
       "username": "rickey.nolan"
     }
  }

Ejemplo Salida Role Incorrecto:

  {
   "codigo": 2,
   "status": "Role incorrecto, es diferente de 1 o 2",
   "usuario": null
   }

Ejemplo Salida ID Incorrecta:

  {
   "codigo": 0,
   "status": "Id de usuario incorrecta, no existe en la base de datos",
   "usuario": null
  }


EndPoint para cerrar sesión:

Nota: Realmente no es un endpoint REST, sino un enlace. No devuelve un JSON, sino una template (en este caso un redirect).

Url de entrada para cerrar sesión:

/logout

Verbos:

Petición GET

Salida:

Se busca la cookie de la sesión y en caso de obtenerla, se procede a borrar la cookie de la base de datos. Después se redirige a /login