Exemplo n.º 1
0
        private async Task <string> GenerateJwtToken(string username, RepairTrackingUser user)
        {
            var roles = await userManager.GetRolesAsync(user);

            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, username),
                new Claim(JwtRegisteredClaimNames.Email, user.Email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id)
            };

            claims.AddRange(roles.Select(x => new Claim(ClaimTypes.Role, x)));

            var key     = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(this.configuration["JWT:JwtKey"]));
            var creds   = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var expires = DateTime.Now.AddDays(Convert.ToDouble(this.configuration["JWT:JwtExpireDays"]));

            var token = new JwtSecurityToken(
                this.configuration["JWT:JwtIssuer"],
                this.configuration["JWT:JwtIssuer"],
                claims,
                expires: expires,
                signingCredentials: creds
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Exemplo n.º 2
0
        public static async Task CreateAdmin(this IServiceProvider serviceProvider)
        {
            //initializing custom roles
            var UserManager = serviceProvider.GetRequiredService <UserManager <RepairTrackingUser> >();

            string[] roleNames = { "Admin", "Employee" };

            var admin = await UserManager.FindByEmailAsync("*****@*****.**");

            if (admin == null)
            {
                admin = new RepairTrackingUser()
                {
                    UserName = "******",
                    Email    = "*****@*****.**",
                };

                var result = await UserManager.CreateAsync(admin, "1234ABab@");

                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(admin, "Admin");
                }
                ;
            }
        }