public ApiResponse ValidateToken(Guid token) { Result result = Result.GenerateFailedResult(); try { AppUserToken appUserToken = db.AppUserTokens.First(t => t.Token == token); if (appUserToken != null) { //Token is Exist if (appUserToken.ExpireDate < DateTime.Now) { //Token is Expired result = Result.GenerateFailedResult("Token is Expired"); } else {//Token is Valid result = result = Result.GenerateOKResult("Token is active"); } } else {//Token is not Exist result = Result.GenerateFailedResult("Token is not exist"); } } catch (Exception ex) { result = Result.GenerateFailedResult("Token is not exist"); } ApiResponse apiResponse = TypesMapper.ApiResponseAdapter.fromResult(result); return(apiResponse); }
public void AumentaTempoVidaToken(string userToken, string appId) { AppUserToken appUserToken; AppUserTokens.TryGetValue(userToken + appId, out appUserToken); if (appUserToken == null) { var userTokenAppToken = unit.UserTokenAppTokenRepository.GetByUserTokenHash(userToken); if (userTokenAppToken != null) { userTokenAppToken.DataExpiracao = DateTime.Now.AddMinutes(10); unit.UserTokenAppTokenRepository.Edit(userTokenAppToken); unit.SaveChanges(); // adiciona no cache appUserToken = new AppUserToken { AppId = appId, UserToken = userToken, }; AppUserTokens.Add(userToken + appId, appUserToken); } } if (appUserToken != null) { appUserToken.Expiration = DateTime.Now.AddMinutes(10); } else { throw new Exception(resourceManagerMsgs.GetString("UserTokenInvalid")); } }
public async Task <AppUserToken> UpdateAsync(AppUserToken appUserToken) { db.AppUserTokens.Update(appUserToken); await db.SaveChangesAsync(); return(appUserToken); }
public APIAppUserToken GetTokenInfo(Guid token) { APIAppUserToken result = new APIAppUserToken(); try { AppUserToken appUserToken = db.AppUserTokens.First(t => t.Token == token); if (appUserToken != null) { //Token is Exist if (appUserToken.ExpireDate < DateTime.Now) { //Token is Expired throw new Exception("Token is Expired"); } else {//Token is Valid result = TypesMapper.APITokenAdapter.fromToken(appUserToken); } } else {//Token is not Exist throw new Exception("Token is not exist"); } } catch (Exception ex) { throw new Exception("Token is not exist"); } return(result); }
public async Task <IActionResult> Login([FromBody] LoginModel login) { var user = await userManager.FindByNameAsync(login.Username); if (user != null && await userManager.CheckPasswordAsync(user, login.Password)) { var token = tokenService.GenerateToken(user.UserName); var appUserToken = new AppUserToken { Id = new JwtSecurityTokenHandler().WriteToken(token), ExpirationDate = token.ValidTo, CreationDate = DateTime.UtcNow, AppUserId = user.Id }; appUserTokensRepository.Create(appUserToken); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), expiration = token.ValidTo })); } return(Unauthorized()); }
public void Remove(AppUserToken appUserToken) { using (var tran = _unitOfWork.BeginTransaction()) { _tokenRepository.Remove(appUserToken); tran.Commit(); } }
public static APIAppUserToken fromToken(AppUserToken sourceToken) { APIAppUserToken result = new APIAppUserToken(); result.AspNetUserID = (string)sourceToken.AspNetUserID; result.AppGUID = sourceToken.App.GUID; result.CreateDate = (DateTime)sourceToken.CreateDate; result.ExpireDate = (DateTime)sourceToken.ExpireDate; result.Token = (Guid)sourceToken.Token; return(result); }
public void AddRefreshToken(AppUserToken refreshToken) { try { var user = _context.Users.Include(s => s.RefreshTokens).SingleOrDefault(s => s.Id == refreshToken.UserId); user.RefreshTokens.Add(refreshToken); _context.SaveChanges(); } catch (Exception x) { throw new Exception(x.Message); } }
public ApiResponse ValidateTokenEntityPermission(Guid token, long entityID, long methodID) { Result res = Result.GenerateFailedResult(); ApiResponse result = new ApiResponse(); try { AppUserToken appUserToken = db.AppUserTokens.First(t => t.Token == token); if (appUserToken == null) {//Token is not Exist string message = "Token is not exist"; repoAPIUtilizations.AddUnAuthorized(token, methodID, message); res = Result.GenerateFailedResult(message); } else { //Token is Exist if (appUserToken.ExpireDate < DateTime.Now) { //Token is Expired string message = "Token is Expired"; repoAPIUtilizations.AddUnAuthorized(token, methodID, message); res = Result.GenerateFailedResult(message); } else {//Token is Valid List <AppAPIEntity> tokEntities = db.AppAPIEntitys.Where(a => a.AppID == (long)appUserToken.AppID && a.SystemEntityID == entityID).ToList(); if (tokEntities.Count == 0) {//Token don't have access to Entity string message = "Token is not allowed to access the requested entity"; repoAPIUtilizations.AddUnAuthorized(token, methodID, message); res = Result.GenerateNotAuthorizedResult(); } else {//Token is allowed to access the Entity string message = "Token is active and have access to " + tokEntities[0].SystemEntity.Title + " entity"; repoAPIUtilizations.AddSuccess((long)appUserToken.AppID, token, methodID, message); res = Result.GenerateOKResult(message); } } } } catch (Exception ex) { string message = "Token is not exist"; repoAPIUtilizations.AddUnAuthorized(token, methodID, message); res = Result.GenerateFailedResult(message); } ApiResponse apiResponse = TypesMapper.ApiResponseAdapter.fromResult(res); return(apiResponse); }
private void Load() { try{ var userTokenAppToken = unit.UserTokenAppTokenRepository.AllInclude(x => x.Aplicacao, y => y.Token).Where(x => x.DataExpiracao > DateTime.Now); foreach (var item in userTokenAppToken) { var token = new AppUserToken { AppId = item.Aplicacao.AppId, UserToken = item.Token.Hash, Expiration = item.DataExpiracao }; TokenManager.AppUserTokens.Add(token.UserToken + token.AppId, token); } } catch (Exception) { } }
public APIAppUserToken GetNewToken(Guid appGuid, string userName, string password) { APIAppUserToken apiToken = new APIAppUserToken(); AppUserToken token = new AppUserToken(); List <AspNetUser> usrs = db.AspNetUsers.Where(u => u.UserName == userName).ToList(); if (usrs.Count > 0) {//User is exist //Validateing Password if (VerifyHashedPassword(usrs[0].PasswordHash, password)) {//Validate App ID & Key App app = db.Apps.First(a => a.GUID == appGuid); if (app == null) {//App not Found throw new Exception("App not Found"); } else {//Create New Token token.AppID = app.ID; token.AspNetUserID = usrs[0].Id; token.CreateDate = DateTime.Now; token.ExpireDate = DateTime.Now.AddDays(180); token.Token = Guid.NewGuid(); db.AppUserTokens.Add(token); db.SaveChanges(); apiToken = TypesMapper.APITokenAdapter.fromToken(token); } } else {//Wrong Password throw new Exception("Wrong password"); } } else {//User Not Exist throw new Exception("User not found"); } return(apiToken); }
public async Task SaveRefreshToken(Guid userId, string newRefreshToken, string timeZone = "", string location = "") { var user = await _userManager.FindByIdAsync(userId.ToString()); var timeZoneId = timeZone; timeZone = GetTimeZone(timeZoneId); if (user != null) { var now = DateTime.UtcNow; var refreshToken = new AppUserToken { RefreshToken = newRefreshToken, CreatedOn = now, ExpiredOn = now.AddMinutes(int.Parse(_config["JWTSetting:RefreshExpiration"])), TimeZone = timeZone, TimeZoneId = timeZoneId, UserId = user.Id }; _userRepository.AddRefreshToken(refreshToken); } }
public void AddAppUserToken(string appId, string userToken) { try { var _aplicacao = unit.AplicacaoRepository.GetByAppId(appId); var _userToken = GetToken(userToken); if (_userToken != null && _aplicacao != null) { // persiste em caso de parado do serviço UserTokenAppToken _userTokenAppToken = new UserTokenAppToken { IdAplicacao = _aplicacao.Id, IdUserToken = _userToken.Id, DataExpiracao = DateTime.Now.AddMinutes(10), DataRegistro = DateTime.Now }; // armazena na lista de cache AppUserToken _appUserToken = new AppUserToken { AppId = appId.ToLower(), UserToken = userToken.ToLower(), Expiration = DateTime.Now.AddMinutes(10) }; unit.UserTokenAppTokenRepository.Insert(_userTokenAppToken); unit.SaveChanges(); AppUserTokens.Add(_userToken.Hash + appId, _appUserToken); } } catch (Exception) { } }
public void Remove(AppUserToken appUserToken) { _tokenCommand.Remove(appUserToken.UserId, appUserToken.LoginProvider, appUserToken.Name); }
public AppUserToken Create(AppUserToken appUserToken) { db.AppUserTokens.Add(appUserToken); db.SaveChanges(); return(appUserToken); }
public void Add(AppUserToken appUserToken) { using var tran = _unitOfWork.BeginTransaction(); _tokenRepository.Add(appUserToken); tran.Commit(); }
public AppUserToken Update(AppUserToken appUserToken) { db.AppUserTokens.Update(appUserToken); db.SaveChanges(); return(appUserToken); }
public async Task UpdateAsync(AppUserToken appUserToken) { _context.Attach(appUserToken).State = EntityState.Modified; await _context.SaveChangesAsync(); }
public void Add(AppUserToken appUserToken) { _tokenCommand.Execute(appUserToken.UserId, appUserToken.LoginProvider, appUserToken.Name, appUserToken.Value, DateTime.Now, appUserToken.Type); }