Example #1
0
        public async Task <IActionResult> CreateUser([FromBody] Register user)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                var vozUser = new VozUser()
                {
                    Email    = user.Email,
                    Name     = user.Name,
                    UserName = user.Email,
                };
                var roleExist = await _roleManager.RoleExistsAsync("Admin");

                if (!roleExist)
                {
                    await _roleManager.CreateAsync(new IdentityRole("Admin"));
                }
                var result = await _userManger.CreateAsync(vozUser, user.Password);

                var rs = await _userManger.AddToRoleAsync(vozUser, "Admin");

                if (result.Succeeded && rs.Succeeded)
                {
                    return(Ok());
                }
                return(BadRequest(result.Errors));
            }
            catch (Exception e)
            {
                throw;
            }
        }
Example #2
0
        public string CreateToken(VozUser user)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.NameId, user.UserName),
            };

            // generate signin credentials

            var key             = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("supper secret key"));
            var creds           = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(7),
                SigningCredentials = creds,
            };
            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }