public CheckTokenResponse CheckToken(string token)
        {
            User user = _cacheManager.GetUser(token);
            CheckTokenResponse checkTokenResponse = new CheckTokenResponse();

            if (user == null)
            {
                checkTokenResponse.SetStatus(Constants.ResponseCode.INVALID_TOKEN);
                return(checkTokenResponse);
            }
            checkTokenResponse.Username   = user.Username;
            checkTokenResponse.UserID     = user.ID;
            checkTokenResponse.ExpireDate = user.Tokens.FirstOrDefault(t => t.TokenText == token).EndDate;
            if (checkTokenResponse.ExpireDate < DateTime.Now)
            {
                checkTokenResponse.SetStatus(Constants.ResponseCode.EXPIRED_CODE);
                return(checkTokenResponse);
            }

            if (user.IsVerified != true)
            {
                checkTokenResponse.SetStatus(Constants.ResponseCode.ISNOTVERIFIED);
                return(checkTokenResponse);
            }


            checkTokenResponse.SetStatus(Constants.ResponseCode.SUCCESS);
            return(checkTokenResponse);
        }
        /// <summary>
        /// проверка токена авторизации на клиентской части
        /// </summary>
        /// <param name="user"></param>
        /// <param name="_sc"></param>
        /// <returns></returns>
        public static Guid CheckSessionAuthState(LoggedUser user, AuthorizeServiceClient _sc)
        {
            if (user == null)
            {
                return(Guid.Empty);
            }

            CheckTokenResponse response = _sc.CheckToken(new Guid(user.AuthToken), user.RoleChangeDateTime);

            if (response.Roles != null && response.Roles.Count != 0)
            {
                //пока, выходим из системы
                return(Guid.Empty);

                var claimsUser = (ClaimsIdentity)user.Identity;
                //удаляем текущие роли
                List <Claim> userRoles = claimsUser.FindAll(ClaimTypes.Role).ToList();
                foreach (Claim userRole in userRoles)
                {
                    claimsUser.RemoveClaim(userRole);
                }

                foreach (UserRoles dicUserRole in response.Roles)
                {
                    Claim newRole = new Claim(ClaimTypes.Role, dicUserRole.ToString());
                    claimsUser.AddClaim(newRole);
                }
            }
            if (!response.OK)
            {
                return(Guid.Empty);
            }
            return(new Guid(user.AuthToken));
        }
        public HttpResponseMessage CheckToken([FromBody] CheckTokenRequest request)
        {
            var response = new CheckTokenResponse();

            try
            {
                if (request.TokenPassword == Configs.TOKEN_PASSWORD)
                {
                    var token = Token.Get(request.Token);
                    if (token == null)
                    {
                        response.IsTokenTimeout = true;
                    }
                    else
                    {
                        if (token.CapPQ == request.Role)
                        {
                            response.Data = new TokenData
                            {
                                UserId          = token.MaNV,
                                PermissionLevel = token.CapPQ,
                                AgencyId        = token.MaCN,
                                PermissionId    = token.MaPQ,
                            };
                        }
                        else
                        {
                            response.IsError = true;
                        }
                    }
                }
                else
                {
                    response.IsError = true;
                }
            }
            catch
            {
                response.IsError = true;
            }
            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Example #4
0
        public IActionResult CheckToken([FromBody] string token)
        {
            CheckTokenResponse response = _loginService.CheckToken(token);

            return(response.Code != (int)Constants.ResponseCode.SUCCESS ? StatusCode(500, response) : StatusCode(201, response));
        }