예제 #1
0
        public async Task <IActionResult> SignIn([FromBody] SignUpSignIn user)
        {
            try
            {
                var _user = await _context.Users.FirstOrDefaultAsync(_user => _user.Email == user.Email);

                if (_user != null)
                {
                    if (_user.ValidatePassword(user.Password))
                    {
                        var tokenHandler = new JwtSecurityTokenHandler();

                        var tokenDescriptor = new SecurityTokenDescriptor
                        {
                            Subject            = new ClaimsIdentity(new Claim[] { new Claim("UserId", _user.Id.ToString()) }),
                            Expires            = DateTime.Now.AddHours(1),
                            SigningCredentials = new SigningCredentials(
                                new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection("SecretKey").Value)), SecurityAlgorithms.HmacSha512Signature)
                        };

                        var _accessToken = tokenHandler.WriteToken(tokenHandler.CreateToken(tokenDescriptor));

                        return(new OkObjectResult(new { AccessToken = _accessToken }));
                    }
                }
            }
            catch { }

            return(new BadRequestResult());
        }
예제 #2
0
        public async Task <IActionResult> SignUp([FromBody] SignUpSignIn user)
        {
            try
            {
                var _user = new User {
                    Email = user.Email
                };
                _user.GeneratePassword(user.Password);

                _context.Users.Add(_user);
                await _context.SaveChangesAsync();

                return(new OkResult());
            }
            catch { }

            return(new BadRequestResult());
        }
예제 #3
0
        public async Task <IActionResult> SignUp([FromBody] SignUpSignIn model)
        {
            try
            {
                var user = new AppUser
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Email     = model.Email
                };

                user.GeneratePassword(model.Password);
                _context.AppUsers.Add(user);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex) { return(new BadRequestObjectResult(ex.Message)); }

            return(new OkResult());
        }
예제 #4
0
        public async Task <IActionResult> SignIn([FromBody] SignUpSignIn model)
        {
            try
            {
                var user = await _context.AppUsers.FirstOrDefaultAsync(u => u.Email == model.Email);

                if (user != null)
                {
                    if (user.ValidatePassword(model.Password))
                    {
                        var th          = new JwtSecurityTokenHandler();
                        var expiresDate = DateTime.Now.AddDays(1);

                        var td = new SecurityTokenDescriptor
                        {
                            Subject = new ClaimsIdentity(new Claim[]
                            {
                                new Claim("UserId", user.Id.ToString()),
                                new Claim("Expires", expiresDate.ToString())
                            }),
                            Expires            = expiresDate,
                            SigningCredentials = new SigningCredentials(
                                new SymmetricSecurityKey(
                                    Encoding.UTF8.GetBytes(_configuration.GetSection("SecretKey").Value)),
                                SecurityAlgorithms.HmacSha512Signature
                                )
                        };

                        var _accessToken = th.WriteToken(th.CreateToken(td));

                        return(new OkObjectResult(_accessToken));
                    }
                }
            }
            catch (Exception ex) { return(new BadRequestObjectResult(ex.Message)); }

            return(new BadRequestResult());
        }