public async Task <string> Register(RegistrationDTO model) { var user = new StrategyGameUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { try { await _orszagService.MakeOrszagUserConnection(user, model.CountryName); } catch (Exception e) { await _userManager.DeleteAsync(user); throw e; } await _signInManager.SignInAsync(user, false); return(await _jwtService.GenerateJwtToken(model.Email, user)); } throw new ApplicationException("UNKNOWN_ERROR"); }
public async Task MakeOrszagUserConnection(StrategyGameUser user, string orszagNev) { try { user.Orszag = await InitOrszag(orszagNev); await _context.SaveChangesAsync(); } catch (Exception e) { throw e; } }
public async Task <string> GenerateJwtToken(string email, StrategyGameUser user) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; 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"])); var token = new JwtSecurityToken( _configuration["JwtIssuer"], _configuration["JwtIssuer"], claims, expires: expires, signingCredentials: creds ); return(new JwtSecurityTokenHandler().WriteToken(token)); }