示例#1
0
        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");
        }
示例#2
0
        public async Task MakeOrszagUserConnection(StrategyGameUser user, string orszagNev)
        {
            try
            {
                user.Orszag = await InitOrszag(orszagNev);

                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#3
0
        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));
        }