Ejemplo n.º 1
0
        public async Task <IActionResult> Signup([FromBody] ApiSigninModel signupModel)
        {
            var user = new User
            {
                UserName = signupModel.Email,
                Email    = signupModel.Email,
                Role     = await _roleManager.FindByNameAsync(RoleType.User.ToString())
            };
            var result = await _userManager.CreateAsync(user, signupModel.Password);

            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(user, RoleType.User.ToString());
            }

            if (!result.Errors.Any())
            {
                return(await Signin(signupModel));
            }
            return(Unauthorized(new { message = result.Errors.ToList() }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Signin([FromBody] ApiSigninModel signInModel)
        {
            var user = await _userManager.FindByNameAsync(signInModel.Email);

            if (user != null && await _userManager.CheckPasswordAsync(user, signInModel.Password))
            {
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                        new Claim(ClaimTypes.Role, _userManager.GetRolesAsync(user).Result.FirstOrDefault())
                    }),
                    Expires            = DateTime.UtcNow.AddHours(6),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.ApplicationSecret)), SecurityAlgorithms.HmacSha256)
                };
                var tokenHandler  = new JwtSecurityTokenHandler();
                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                var token         = tokenHandler.WriteToken(securityToken);

                return(Ok(new { BearerToken = token }));
            }
            return(Unauthorized());
        }