private async Task <JwtSecurityToken> GenerateJwtToken(string email, TunnelRUser user) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id), new Claim(ClaimTypes.Name, user.UserName), }; var roles = await _userManager.GetRolesAsync(user); claims.AddRange(roles.Select(role => new Claim(ClaimsIdentity.DefaultRoleClaimType, role))); var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JwtKey"])); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var expires = DateTime.Now.AddDays(Convert.ToDouble(_configuration["JwtExpireDays"])); return(new JwtSecurityToken( _configuration["JwtIssuer"], _configuration["JwtIssuer"], claims, expires: expires, signingCredentials: creds )); }
public async Task <object> Token() { TunnelRUser user = await _userManager.FindByNameAsync(HttpContext.User.Identity.Name); await _signInManager.SignInAsync(user, false); return((await GenerateJwtToken(user.UserName, user)).CreateTokenString()); }
public async Task <object> Register([FromBody] RegisterDto model) { var user = new TunnelRUser { UserName = model.UserName, }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false); await _userManager.AddToRoleAsync(user, "Player"); return((await GenerateJwtToken(model.UserName, user)).CreateTokenString()); } return(BadRequest(result.Errors.First().Description)); }
public static void LogMacAddress(this TunnelRContext context, TunnelRUser user, PhysicalAddress macAddress) { context.MagAddressLog.Add(new MacAddressLog(user, macAddress.ToString())); context.SaveChanges(); }