예제 #1
0
        public string Insert(int idUser, string deviceUUID, int expirationTime)
        {
            ConfigUserLoginEntity entity = new ConfigUserLoginEntity();

            entity.IdUser              = idUser;
            entity.DeviceUUID          = deviceUUID;
            entity.Token               = Guid.NewGuid().ToString();
            entity.Timestamp           = DateTime.Now;
            entity.ExpirationTimestamp = DateTime.Now.AddSeconds(expirationTime);
            if (_ConfigUserLoginCrud.Insert(entity))
            {
                return(entity.Token);
            }
            else
            {
                return(null);
            }
        }
예제 #2
0
        public string LoginByToken(int idUser, string token, string deviceUUID, int expirationTime)
        {
            /* Reviso que exista el token que envia el usuario */
            ConfigUserLoginEntity configUser = this.SelectByUserTokenUUID(idUser, token, deviceUUID);

            if (configUser != null)
            {
                /* Si el token no esta vencido se le permite usar el mismo token */
                if (DateTime.Now > configUser.ExpirationTimestamp)
                {
                    return(configUser.Token);
                }
                /* De lo contrario se renueva el token */
                else
                {
                    return(this.Insert(idUser, deviceUUID, expirationTime));
                }
            }
            else
            {
                return(null);
            };
        }
예제 #3
0
        public bool IsAuthenticated(int idUser, string token, string deviceUUID, int timeExpireSession, bool renewSession)
        {
            bool isAuthenticated = false;
            /* Reviso que exista el token que envia el usuario */
            ConfigUserLoginEntity configUser = this.SelectByUserTokenUUID(idUser, token, deviceUUID);

            if (configUser != null)
            {
                /* Si el token esta vencido se valida si se renueva la sesion automaticamente */
                if (DateTime.Now > configUser.ExpirationTimestamp)
                {
                    if (renewSession)
                    {
                        UpdateExpirationTimestamp(idUser, token, deviceUUID, DateTime.Now.AddMilliseconds(timeExpireSession));
                        isAuthenticated = true;
                    }
                }
                else
                {
                    isAuthenticated = true;
                }
            }
            return(isAuthenticated);
        }