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)); }
public IActionResult CheckToken([FromBody] string token) { CheckTokenResponse response = _loginService.CheckToken(token); return(response.Code != (int)Constants.ResponseCode.SUCCESS ? StatusCode(500, response) : StatusCode(201, response)); }