Beispiel #1
0
        public async Task <List <ToDoListVM> > GetActivities()
        {
            List <ToDoListVM> activities = new List <ToDoListVM>();

            client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));
            TokenVM tokenVM = new TokenVM();

            tokenVM.Username           = HttpContext.Session.GetString("Username");
            tokenVM.ExpireToken        = Convert.ToInt64(HttpContext.Session.GetString("ExpToken"));
            tokenVM.RefreshToken       = HttpContext.Session.GetString("RefreshToken");
            tokenVM.ExpireRefreshToken = Convert.ToInt64(HttpContext.Session.GetString("ExpRefreshToken"));

            if (tokenVM.ExpireToken < DateTime.UtcNow.Ticks && tokenVM.ExpireRefreshToken > DateTime.UtcNow.Ticks)
            {
                await RefreshToken(tokenVM);
            }
            else if (tokenVM.ExpireRefreshToken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            var responseTask = await client.GetAsync("activities/GetAll/" + HttpContext.Session.GetString("Id") + "/" + 3);

            activities = await responseTask.Content.ReadAsAsync <List <ToDoListVM> >();

            return(activities);
        }
        public async Task <IActionResult> Login(UserVM loginViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    TokenVM tokenVM = new TokenVM();
                    tokenVM.Username = loginViewModel.UserName;
                    tokenVM.Email    = loginViewModel.Email;
                    if (await _userManager.FindByEmailAsync(tokenVM.Email) != null)
                    {
                        TokenVM generate = await GenerateToken(tokenVM);

                        return(Ok(generate));
                    }
                    return(BadRequest("User not Found"));
                }
                catch (Exception e)
                {
                    return(BadRequest(new { message = e }));
                }
            }
            else
            {
                return(BadRequest("Failed"));
            }
        }
Beispiel #3
0
        public async Task <JsonResult> Login([FromBody] LoginVM loginUser)
        {
            //hash the password
            string password = HashString.Hash(loginUser.password, config["salt"]);

            var user = await context.Users
                       .Where(u => u.username == loginUser.username)
                       .Where(u => u.hashedPassword == password)
                       .FirstOrDefaultAsync();

            if (user != null)
            {
                //Generate the JWT
                GenerateJWT jwtGen = new GenerateJWT();
                TokenVM     token  = jwtGen.Generate(user.username, config);
                return(Json(new JSONTokenResponseVM {
                    message = "Successfully logged in", token = token.token
                }));
            }
            else
            {
                return(Json(new JSONResponseVM {
                    success = false, message = "Incorrect login details"
                }));
            }
        }
Beispiel #4
0
        public async Task <JsonResult> UncheckStatus(int Id)
        {
            client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));

            TokenVM tokenVM = new TokenVM();

            tokenVM.Username           = HttpContext.Session.GetString("Username");
            tokenVM.ExpireToken        = Convert.ToInt64(HttpContext.Session.GetString("ExpToken"));
            tokenVM.RefreshToken       = HttpContext.Session.GetString("RefreshToken");
            tokenVM.ExpireRefreshToken = Convert.ToInt64(HttpContext.Session.GetString("ExpRefreshToken"));

            if (tokenVM.ExpireToken < DateTime.UtcNow.Ticks && tokenVM.ExpireRefreshToken > DateTime.UtcNow.Ticks)
            {
                await RefreshToken(tokenVM);
            }
            else if (tokenVM.ExpireRefreshToken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            var myContent   = JsonConvert.SerializeObject(Id);
            var buffer      = System.Text.Encoding.UTF8.GetBytes(myContent);
            var byteContent = new ByteArrayContent(buffer);

            byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            var result = client.PutAsync("activities/uncheckStatus/" + Id, byteContent).Result;

            return(Json(result));
        }
Beispiel #5
0
        public async Task <IActionResult> Register([FromBody] RegisterVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var user = new AppUser()
            {
                UserName  = model.Email,
                Email     = model.Email,
                FirstName = model.FirstName,
                LastName  = model.LastName
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            var jwtSecurityToken = await generateToken(user);

            var tokenVM = new TokenVM
            {
                AccessToken = jwtSecurityToken,
                ExpiresIn   = (int)TimeSpan.FromDays(Constants.TokenExpiryDays).TotalSeconds,
                UserInfo    = Mapper.Map <UserVM>(user)
            };

            return(Ok(tokenVM));
        }
Beispiel #6
0
        public async Task <IActionResult> UserSignUp([FromBody] UserVM userModel)
        {
            if (await _userManager.FindByEmailAsync(userModel.Email) == null)
            {
                var user = new User()
                {
                    UserName = userModel.UserName,
                    Email    = userModel.Email,
                };
                await _userManager.CreateAsync(user, userModel.Password);

                var client  = new HttpClient();
                var baseURL = new Uri($"{_httpContextAccessor.HttpContext.Request.Scheme}://{_httpContextAccessor.HttpContext.Request.Host.ToUriComponent()}");
                client.BaseAddress = baseURL;
                var tokenModel = new TokenVM
                {
                    Email    = userModel.Email,
                    Password = userModel.Password
                };

                var tokenModelSerialized = JsonConvert.SerializeObject(tokenModel);
                var response             = client.PostAsync("/api/token", new StringContent(tokenModelSerialized, Encoding.UTF8, "application/json"));
                return(Ok(response.Result.Content.ReadAsStringAsync().Result));
            }
            else
            {
                return(Ok("This email already exists"));
            }
        }
Beispiel #7
0
        public async Task <Paging> Paging(int status, string keyword, int pageSize, int pageNumber)
        {
            client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));

            TokenVM tokenVM = new TokenVM();

            tokenVM.Username           = HttpContext.Session.GetString("Username");
            tokenVM.ExpireToken        = Convert.ToInt64(HttpContext.Session.GetString("ExpToken"));
            tokenVM.RefreshToken       = HttpContext.Session.GetString("RefreshToken");
            tokenVM.ExpireRefreshToken = Convert.ToInt64(HttpContext.Session.GetString("ExpRefreshToken"));

            if (tokenVM.ExpireToken < DateTime.UtcNow.Ticks && tokenVM.ExpireRefreshToken > DateTime.UtcNow.Ticks)
            {
                await RefreshToken(tokenVM);
            }
            else if (tokenVM.ExpireRefreshToken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            try
            {
                var response = await client.GetAsync("activities/paging?Id=" + HttpContext.Session.GetString("Id") + "&status=" + status + "&keyword=" + keyword + "&pageSize=" + pageSize + "&pageNumber=" + pageNumber);

                if (response.IsSuccessStatusCode)
                {
                    return(await response.Content.ReadAsAsync <Paging>());
                }
            }
            catch (Exception) { }
            return(null);
        }
Beispiel #8
0
        public async Task <IActionResult> SignIn([FromBody] CredentialsVM credentials)
        {
            var result = await _signInManager.PasswordSignInAsync(credentials.Email, credentials.Password, false, false);

            if (!result.Succeeded)
            {
                return(BadRequest(new ApiError {
                    Message = "Login failed."
                }));
            }

            var user = await _userManager.FindByEmailAsync(credentials.Email);

            if (user == null)
            {
                return(BadRequest(new ApiError {
                    Message = "Email not found."
                }));
            }

            TokenVM tokenVM = new TokenVM()
            {
                token      = TokenUtility.CreateToken(user),
                expires_at = DateTimeOffset.UtcNow.AddMinutes(20).ToUnixTimeMilliseconds()
            };

            return(Ok(tokenVM));
        }
        public async Task <BookFinderVM> Paging(int pageSize, int pageNumber, string keyword)
        {
            Client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));

            TokenVM tokenVM = new TokenVM();

            var exptoken    = Convert.ToInt64(HttpContext.Session.GetString("Expire"));
            var expreftoken = Convert.ToInt64(HttpContext.Session.GetString("ExpireRefreshToken"));

            if (exptoken < DateTime.UtcNow.Ticks && expreftoken > DateTime.UtcNow.Ticks)
            {
                await RefToken(tokenVM);
            }
            else if (expreftoken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            try
            {
                var response = await Client.GetAsync("BookFinders/paging?keyword=" + keyword + "&pageSize=" + pageSize + "&pageNumber=" + pageNumber);

                var testing = response;
                if (response.IsSuccessStatusCode)
                {
                    var e = await response.Content.ReadAsAsync <BookFinderVM>();

                    return(e);
                }
            }
            catch (Exception m)
            {
            }
            return(null);
        }
        public async Task <TokenVM> GenerateToken(TokenVM tokenVM)
        {
            var user = await _userManager.FindByEmailAsync(tokenVM.Email);

            TokenVM response = _tokenService.Get(tokenVM.Email);

            var authClaim = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, _configuration["Jwt:Subject"]),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()),
            };
            var key      = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));
            var signIn   = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var acctoken = new JwtSecurityToken(_configuration["Jwt:Issuer"],
                                                _configuration["Jwt:Audience"],
                                                authClaim,
                                                expires: DateTime.UtcNow.AddMinutes(40),
                                                signingCredentials: signIn);
            var     accessToken            = new JwtSecurityTokenHandler().WriteToken(acctoken);
            var     expirationToken        = DateTime.UtcNow.AddMinutes(40).Ticks;
            var     refreshToken           = GenerateRefreshToken();
            var     expirationRefreshToken = DateTime.UtcNow.AddMinutes(140).Ticks;
            TokenVM generate = new TokenVM
            {
                Email              = user.Email,
                FirstName          = user.FirstName,
                LastName           = user.LastName,
                Username           = user.UserName,
                AccessToken        = accessToken,
                ExpireToken        = expirationToken,
                RefreshToken       = refreshToken,
                ExpireRefreshToken = expirationRefreshToken
            };

            if (response == null)
            {
                _tokenService.Insert(new TokenVM
                {
                    Email              = generate.Email,
                    AccessToken        = generate.AccessToken,
                    ExpireToken        = generate.ExpireToken,
                    RefreshToken       = generate.RefreshToken,
                    ExpireRefreshToken = generate.ExpireRefreshToken
                });
            }
            else
            {
                _tokenService.Update(new TokenVM
                {
                    Email              = generate.Email,
                    AccessToken        = generate.AccessToken,
                    ExpireToken        = generate.ExpireToken,
                    RefreshToken       = generate.RefreshToken,
                    ExpireRefreshToken = generate.ExpireRefreshToken
                });
            }
            return(generate);
        }
 public AddSalonWindow(Salons s, TokenVM _token)
 {
     InitializeComponent();
     this.postalCode.Text = s.PostalCode;
     this.city.Text       = s.City;
     this.address.Text    = s.Address;
     salonId = s.SalonId;
     token   = _token;
 }
Beispiel #12
0
        public async Task <JsonResult> CreateAccount([FromBody] CreateAccountVM account)
        {
            //validate

            if (account.username == null || account.password == null || account.password2 == null)
            {
                return(Json(new JSONResponseVM {
                    success = false, message = "Please fill out all the fields"
                }));
            }
            if (account.password != account.password2)
            {
                return(Json(new JSONResponseVM {
                    success = false, message = "Passwords don't match"
                }));
            }

            //check to see if this username already exists
            var query = await context.Users.Where(u => u.username == account.username).FirstOrDefaultAsync();

            if (query != null)
            {
                //this username exists
                return(Json(new JSONResponseVM {
                    success = false, message = "A user with this username already exists"
                }));
            }


            string newPassword = account.password;

            newPassword = HashString.Hash(newPassword, config["salt"]);

            //now add the new user to the database
            User newUser = new User
            {
                username       = account.username,
                hashedPassword = newPassword,
                //the user is by default a customer
                role_id = 0,
                role    = await context.Roles.Where(r => r.role_id == 0).FirstOrDefaultAsync()
            };

            context.Users.Add(newUser);
            context.SaveChanges();

            //generate the token
            GenerateJWT jwtGen = new GenerateJWT();
            TokenVM     tok    = jwtGen.Generate(newUser.username, config);

            return(Json(new JSONTokenResponseVM {
                message = "Successfully created account: " + newUser.username, token = tok.token
            }));
        }
Beispiel #13
0
        public static async Task <TokenVM> GenerateJwt(ClaimsIdentity identity, IJwtFactory jwtFactory, string userName, JwtIssuerOptions jwtOptions, JsonSerializerSettings serializerSettings)
        {
            TokenVM response = new TokenVM()
            {
                // id = identity.Claims.Single(c => c.Type == "id").Value,
                Auth_token = await jwtFactory.GenerateEncodedToken(userName, identity),
                Expires_in = (int)jwtOptions.ValidFor.TotalSeconds
            };

            return(response);
        }
 public AddCarWindow(Cars c, TokenVM _token)
 {
     InitializeComponent();
     this.make.Text        = c.Make;
     this.model.Text       = c.Model;
     this.modelYear.Text   = c.ModelYear.ToString();
     this.bodyType.Text    = c.BodyType;
     this.combFuelEco.Text = c.CombFuelEco.ToString();
     this.pricePerDay.Text = c.PricePerDay.ToString();
     car   = c;
     token = _token;
 }
        public AddRenterWindow(Renters r, TokenVM _token)
        {
            InitializeComponent();
            this.name.Text        = r.Name;
            this.postalCode.Text  = r.PostalCode;
            this.city.Text        = r.City;
            this.address.Text     = r.Address;
            this.email.Text       = r.Email;
            this.phoneNumber.Text = r.PhoneNumber;
            this.rentedDays.Text  = r.RentedDays.ToString();

            renter = r;
            token  = _token;
        }
Beispiel #16
0
        public string GetToken(TokenVM tokenVM)
        {
            var client = new RestClient("https://localhost:44389/api/Authentication/token");

            client.Timeout = -1;
            var request = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddHeader("Cookie", ".AspNetCore.Identity.Application=CfDJ8D_xAUvhPIJOvC-tYFBgkeHG4ZC3RzQUST8CToT2z-RxwVhKtxy8M0ndZnqHvy2XJcswrL28GuVGcGhHXhHIXboNUTHQRI1Xu3oSEsIvxRIfWM2cCdAWT5djpYF4s2z902kfVP_mE-X3dzsEgsOhoz3c1tLF3j7gZy2vW1ACZCsWjhqUFSnvBbjnUXEYkP0DGtcjv3mysvxrucoA34RPL7bXFq_vY13TSAkz5567Igi_Ov1GyDBhUT-vua_vDb0sdWHWKGnGVhOSn-k2BW9bG5x0GCjZqd92GqAnAyoqc3E-mIPZ_CefrueL0IfdvEPTUw; .AspNetCore.Session=CfDJ8D%2FxAUvhPIJOvC%2BtYFBgkeFv9CTqyricnd7sf57kdwzALxQQ18eX9PDskhxAaWmh8PuYVMey18v3KP0eC8Ra%2FgInHq6cLo%2Bye4B5GJRBGkBaIjfttx707cUKnYeMO4OqKLoIUMv3fsK%2BTzyyOpmz3nWCnF7xHoPsbSzh8DMzGglf");
            request.AddParameter("email", tokenVM.Email);
            request.AddParameter("password", tokenVM.Password);
            IRestResponse response = client.Execute(request);

            return(response.Content);
        }
        public int Update(TokenVM tokenVM)
        {
            parameters.Add("Email", tokenVM.Email);
            parameters.Add("AccessToken", tokenVM.AccessToken);
            parameters.Add("ExpirationAccessToken", tokenVM.ExpireToken);
            parameters.Add("RefreshToken", tokenVM.RefreshToken);
            parameters.Add("ExpirationRefreshToken", tokenVM.ExpireRefreshToken);
            const string procedure = "SP_UpdateToken";

            using (var connection = new SqlConnection(connectionString.Value))
            {
                var data = connection.Execute(procedure, parameters, commandType: CommandType.StoredProcedure);
                return(data);
            }
        }
        public TokenVM Get(string Email)
        {
            var data = new TokenVM();

            try
            {
                parameters.Add("Email", Email);
                const string procedure = "SP_GetToken";
                using (var connection = new SqlConnection(connectionString.Value))
                {
                    data = connection.QuerySingleOrDefault <TokenVM>(procedure, parameters, commandType: CommandType.StoredProcedure);
                    return(data);
                }
            }
            catch (Exception) { }
            return(data);
        }
Beispiel #19
0
        public async Task <IActionResult> Post([FromBody] CredentialsViewModel credentials)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ClaimsIdentity identity = await GetClaimsIdentity(credentials.UserName, credentials.Password);

            if (identity == null)
            {
                return(BadRequest(Errors.AddErrorToModelState("login_failure", "Invalid username or password.", ModelState)));
            }

            TokenVM jwt = await Tokens.GenerateJwt(identity, _jwtFactory, credentials.UserName, _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented });

            return(new OkObjectResult(jwt));
        }
Beispiel #20
0
        public async Task Token([FromBody] TokenVM token)
        {
            var username = token.username;
            var password = token.password;
            var identity = await GetIdentity(username, password);

            if (identity == null)
            {
                Response.StatusCode = 400;
                await Response.WriteAsync("Invalid username or password.");

                return;
            }

            var now = DateTime.UtcNow;
            // создаем JWT-токен
            var jwt = new JwtSecurityToken(
                issuer: AuthOptions.ISSUER,
                audience: AuthOptions.AUDIENCE,
                notBefore: now,
                claims: identity.Claims,
                expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)),
                signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256));
            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);
            // сериализация ответа

            var user = await userManager.FindByEmailAsync(identity.Name);

            var profile  = (await context.UserProfiles.GetAll()).FirstOrDefault(x => x.UserId == user.Id);
            var response = new
            {
                access_token = encodedJwt,
                username     = user,
                profile      = profile
            };


            Response.ContentType = "application/json";
            await Response.WriteAsync(JsonConvert.SerializeObject(response, new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }));
        }
Beispiel #21
0
        public async Task <bool> SetApiToken(TokenVM token)
        {
            _logger.LogInformation("WaterService.SetApiToken - Service starts.");

            var dbToken = new Tokens {
                TokenString = token.Token,
                Life        = token.Duration,
                Target      = token.Target
            };

            _dbContext.Tokens.Add(dbToken);
            try {
                await _dbContext.SaveChangesAsync();
            } catch (Exception e) {
                _logger.LogError("WaterService.SetApiToken - Error: " + e);
                return(false);
            }

            return(true);
        }
Beispiel #22
0
        public async Task <JsonResult> GetApiToken(string task)
        {
            _logger.LogInformation("WaterController.GetApiToken - Service starts.");

            var tokenLength = HelperProvider.RandomNumberInRange(30, 100);

            var token = new TokenVM {
                Token    = HelperProvider.GenerateRandomString(tokenLength),
                Duration = TOKEN_LIFE,
                Target   = HidroConstants.API_TOKEN_TARGETS[task]
            };

            var result = await _tokenService.SetApiToken(token);

            if (!result)
            {
                return(new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while attempting to load your photos. Please reload page to try again." }));
            }

            return(new JsonResult(new { Result = RESULTS.SUCCESS, Message = token.Token }));
        }
Beispiel #23
0
        public static TokenVM GenerateToken(UsuarioModel usuario)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(/*Configuracoes.Secret*/ "csdfdsfasdwsgwes");
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, usuario.Nome),
                    new Claim(ClaimTypes.Role, usuario.Funcao)
                }),
                Expires            = DateTime.UtcNow.AddHours(2),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token   = tokenHandler.CreateToken(tokenDescriptor);
            var tokenVM = new TokenVM();

            tokenVM.Token = tokenHandler.WriteToken(token);
            tokenVM.DataExpiracaoToken = (DateTime)tokenDescriptor.Expires;
            return(tokenVM);
        }
Beispiel #24
0
        public async Task <IActionResult> GenerateToken([FromBody] TokenVM model)
        {
            try
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    if (_hasher.VerifyHashedPassword(user, user.PasswordHash, model.Password) == PasswordVerificationResult.Success)
                    {
                        var claims = new[]
                        {
                            new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                            new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                            new Claim(JwtRegisteredClaimNames.Email, user.Email)
                        };
                        var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"]));
                        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                        var token = new JwtSecurityToken(
                            issuer: _config["Tokens:Issuer"],
                            audience: _config["Tokens:Audience"],
                            claims: claims,
                            expires: DateTime.UtcNow.AddDays(30),
                            signingCredentials: creds
                            );
                        return(Ok(
                                   new
                        {
                            access_token = new JwtSecurityTokenHandler().WriteToken(token),
                            expires_on = token.ValidTo
                        }));
                    }
                }
                return(BadRequest(""));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Beispiel #25
0
        public async Task <IActionResult> Refresh(TokenVM tokenViewModel)
        {
            try
            {
                TokenVM refToken = _tokenService.Get(tokenViewModel.Username);
                if (refToken.ExpireRefreshToken < DateTime.UtcNow.Ticks)
                {
                    return(Unauthorized());
                }
                if (refToken.RefreshToken == tokenViewModel.RefreshToken)
                {
                    TokenVM generate = await GenerateToken(tokenViewModel);

                    return(Ok(generate));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(Unauthorized(ex));
            }
        }
Beispiel #26
0
        public async Task <JsonResult> GetbyID(int Id)
        {
            IEnumerable <ToDoListVM> toDoList = null;

            client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));

            TokenVM tokenVM = new TokenVM();

            tokenVM.Username           = HttpContext.Session.GetString("Username");
            tokenVM.ExpireToken        = Convert.ToInt64(HttpContext.Session.GetString("ExpToken"));
            tokenVM.RefreshToken       = HttpContext.Session.GetString("RefreshToken");
            tokenVM.ExpireRefreshToken = Convert.ToInt64(HttpContext.Session.GetString("ExpRefreshToken"));

            if (tokenVM.ExpireToken < DateTime.UtcNow.Ticks && tokenVM.ExpireRefreshToken > DateTime.UtcNow.Ticks)
            {
                await RefreshToken(tokenVM);
            }
            else if (tokenVM.ExpireRefreshToken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            var responseTask = client.GetAsync("activities/" + Id);

            responseTask.Wait();
            var result = responseTask.Result;

            if (result.IsSuccessStatusCode)
            {
                var readTask = result.Content.ReadAsAsync <IEnumerable <ToDoListVM> >();
                readTask.Wait();
                toDoList = readTask.Result;
            }
            else
            {
                toDoList = Enumerable.Empty <ToDoListVM>();
                ModelState.AddModelError(string.Empty, "Server error try after some time");
            }
            return(Json(toDoList));
        }
Beispiel #27
0
        public async Task <IActionResult> CreateToken([FromBody] LoginVM model)
        {
            var user = await _userManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                return(Unauthorized());
            }
            if (_passwordHasher.VerifyHashedPassword(user, user.PasswordHash, model.Password) == PasswordVerificationResult.Success)
            {
                var jwtSecurityToken = await generateToken(user);

                var tokenVM = new TokenVM
                {
                    AccessToken = jwtSecurityToken,
                    ExpiresIn   = (int)TimeSpan.FromDays(Constants.TokenExpiryDays).TotalSeconds,
                    UserInfo    = Mapper.Map <UserVM>(user)
                };
                return(Ok(tokenVM));
            }
            return(Unauthorized());
        }
Beispiel #28
0
        // GET: activities/Delete/5
        public async Task <JsonResult> Delete(int id)
        {
            client.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));
            TokenVM tokenVM = new TokenVM();

            tokenVM.Username           = HttpContext.Session.GetString("Username");
            tokenVM.ExpireToken        = Convert.ToInt64(HttpContext.Session.GetString("ExpToken"));
            tokenVM.RefreshToken       = HttpContext.Session.GetString("RefreshToken");
            tokenVM.ExpireRefreshToken = Convert.ToInt64(HttpContext.Session.GetString("ExpRefreshToken"));

            if (tokenVM.ExpireToken < DateTime.UtcNow.Ticks && tokenVM.ExpireRefreshToken > DateTime.UtcNow.Ticks)
            {
                await RefreshToken(tokenVM);
            }
            else if (tokenVM.ExpireRefreshToken < DateTime.UtcNow.Ticks)
            {
                return(null);
            }
            var result = client.DeleteAsync("activities/" + id).Result;

            return(Json(result));
        }