====== Inicio de Sesion ====== title inicio de sesion participant "Usuario" as usr participant "FE\nLogin" as login participant "API\nLogin" as apilogin participant "BE\nLogin" as belogin participant "DS\nLogin" as dslogin usr -> +usr: usr -> +login:Iniciar\nSesion login -> +apilogin:POST api/sesion/iniciar\nusuario:Usuario apilogin -> +belogin:GenerarSesion(usuario:Usuario) belogin --> -apilogin:sesion:Sesion alt sesion != null apilogin -> +apilogin:RegistrarInicio(sesion:Sesion) apilogin --> -apilogin: else sesion == null end apilogin --> -login:sesion:Sesion login --> usr: title Inicio de Sesion participant Usuario as usr participant "FE - HIS" as his participant "FE - Login" as login participant "CNT - Sesiones" as cntSesion participant "BE - Sesiones" as beSesion participant "BE - Usuarios" as beUsuario participant "BE - Bitacora" as beBitacora participant "BE - Generador" as beGenerador participant "DS - Sesiones" as dsSesion participant "DS - Usuarios" as dsUsuario participant "DS - Bitacora" as dsBitacora participant "DS - Generador" as dsGenerador usr -> +usr: usr -> +his: Accede al\nsistema his -> +login: GET /Logon login --> -his: 200 OK his --> -usr: ventana de\ninicio de sesion usr -> +login:Inicia\nsesion login -> +cntSesion:POST /Logon/Iniciar\nusuario:Usuario cntSesion -> +beSesion:Iniciar(usuario:Usuario) beSesion -> +beSesion:GenerarBitacora(usuario:Usuario,tipoEvento:string) beSesion -> -beSesion:bitacora:Bitacora beSesion -> +beBitacora:Guardar(bitacora:Bitacora) note right of beSesion Evento: Inicio de Sesion end note beBitacora -> +dsBitacora:Guardar(bitacora:Bitacora) dsBitacora --> -beBitacora: beBitacora --> -beSesion: beSesion -> +beUsuario:ValidaUsuario(usuario:Usuario) beUsuario -> +beBitacora:Guardar(bitacora:Bitacora) note right of beUsuario Evento: Validacion de Usuario end note beBitacora -> +dsBitacora:Guardar(bitacora:Bitacora) dsBitacora --> -beBitacora: beBitacora --> -beUsuario: beUsuario -> +dsUsuario:ValidaUsuario(nombreUsuario:string,contrasena:string) dsUsuario --> -beUsuario:resultado:bool beUsuario -> +beBitacora:Guardar(bitacora:Bitacora) note right of beUsuario Evento: Resultado de Validacion de Usuario end note beBitacora -> +dsBitacora:Guardar(bitacora:Bitacora) dsBitacora --> -beBitacora: beBitacora --> -beUsuario: beUsuario --> -beSesion:resultado:bool alt true beSesion -> +beGenerador:Generar(tipo:String,params:Dictionary) beGenerador --> -beSesion:token:string beSesion -> +dsSesion:Guardar(sesion:Sesion) dsSesion --> -beSesion: beSesion -> +beBitacora:Guardar(bitacora:Bitacora) note right of beSesion Evento: Registrar Sesion Exitosa end note beBitacora -> +dsBitacora:Guardar(bitacora:Bitacora) dsBitacora --> -beBitacora: beBitacora --> -beSesion: else false beSesion -> +beBitacora:Guardar(bitacora:Bitacora) note right of beSesion Evento: Registrar Sesion Fallida end note beBitacora -> +dsBitacora:Guardar(bitacora:Bitacora) dsBitacora --> -beBitacora: beBitacora --> -beSesion: end beSesion --> -cntSesion:sesion:Sesion cntSesion --> -login:sesion:Sesion login --> -his:sesion:Sesion note right of his Se almacena la sesion\nen el sessionStorage end note his --> usr: