Diferencia entre revisiones de «Autenticación - 17 18 - G1»
(Página creada con « == 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...») |
(→Repositorio de GitHud) |
||
(No se muestran 11 ediciones intermedias de 2 usuarios) | |||
Línea 10: | Línea 10: | ||
− | == Repositorio de | + | == Repositorio de GitHub == |
El repositorio de GitHub del equipo será accesible en [https://github.com/Proyecto-EGC-G1/Autenticacion-EGC-G1 este enlace] Cualquier cambio o documentación importante añadida a él se notificará a los coordinadores en el momento. | El repositorio de GitHub del equipo será accesible en [https://github.com/Proyecto-EGC-G1/Autenticacion-EGC-G1 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 [http://opera.eii.us.es/egc/public/trabajo/ver/id/91 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 == | ||
+ | <br> | ||
+ | |||
+ | === EndPoint para comprobar cookies: === | ||
+ | |||
+ | |||
+ | '''Url de entrada para comprobar cookies:'''<br> | ||
+ | :/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:'''<br> | ||
+ | :/users/{user_id}/role | ||
+ | |||
+ | '''Verbos:'''<br> | ||
+ | :Petición PUT | ||
+ | '''Entrada →''' Json con el nuevo role: | ||
+ | |||
+ | { | ||
+ | "role_id": 1 | ||
+ | } | ||
+ | '''Salida →''' Json con la siguiente información:<br> | ||
+ | |||
+ | '''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''' |
Revisión actual del 01:16 18 ene 2018
Contenido
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