예제 #1
0
 // public UserDTO()
 public UserDTO(LemonUser user)
 {
     Id          = user.Id;
     FirstName   = user.FirstName;
     LastName    = user.LastName;
     DateCreated = user.DateCreated;
 }
예제 #2
0
        private string GenerateJwtToken(LemonUser user)
        {
            var claims = new List <Claim> {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id)
            };
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Guid"]));
            var creds       = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

            var token = new JwtSecurityToken(claims: claims, signingCredentials: creds);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
예제 #3
0
        public async Task <object> Register([FromForm] RegisterDto registerData)
        {
            if (ModelState.IsValid)
            {
                var user = new LemonUser {
                    UserName    = registerData.UserInfo.Username,
                    DateCreated = DateTime.UtcNow
                };
                if (registerData.Avatar != null)
                {
                    if (string.Equals(registerData.Avatar.ContentType, "image/png", StringComparison.OrdinalIgnoreCase))
                    {
                        using (var memoryStream = new MemoryStream()) {
                            await registerData.Avatar.CopyToAsync(memoryStream);

                            user.Avatar = memoryStream.ToArray();
                        }
                    }
                }
                user.Email = registerData.UserInfo.Email;
                var result = await _userManager.CreateAsync(user, registerData.UserInfo.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(GenerateJwtToken(user));
                }
                var exceptionText = result.Errors.Aggregate("User Creation Failed, Errors were: \n\r\n\r", (current, error) => current + (" - " + error.Description + "\n\r"));
                throw new LemonInvalidException(exceptionText);
            }
            else
            {
                throw new LemonInvalidException("Bad new user data");
            }
        }
예제 #4
0
 public UserInfoDto(LemonUser user)
 {
     this.Id       = user.Id;
     this.Username = user.UserName;
 }