public string Login(LoginDTO loginDTO) { var cryptoPassword = CryptoPassword.GetSha(loginDTO.Password); var user = _context.Users.FirstOrDefault(x => x.Email == loginDTO.Email && x.Password == cryptoPassword); if (user == null) { throw new ServiceException(ExceptionMessages.USER_NOT_FOUND); } if (!user.IsActive) { throw new ServiceException(ExceptionMessages.USER_NOT_ACTIVE); } var tokenHandler = new JwtSecurityTokenHandler(); var tokenKey = this._configuration.GetValue <string>("Token_Key"); var tokenKeyByte = Encoding.ASCII.GetBytes(tokenKey); SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(new Claim[] { new Claim("Name", user.Name), new Claim("Surname", user.Surname), new Claim("Email", user.Email), new Claim("Id", Convert.ToString(user.Id)), }), Expires = DateTime.UtcNow.AddHours(24), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(tokenKeyByte), SecurityAlgorithms.HmacSha512) }; var securityToken = tokenHandler.CreateToken(tokenDescriptor); string token = tokenHandler.WriteToken(securityToken); return(token); }
public void Register(RegisterDTO registerDTO) { User user = new User { Name = registerDTO.Name, Surname = registerDTO.Surname, Email = registerDTO.Email, Password = CryptoPassword.GetSha(registerDTO.Password), UpdatedDate = null, ConfirmationKey = CryptoPassword.GetSha(registerDTO.Email), IsActive = false }; _context.Users.Add(user); _context.SaveChanges(); string bodyHtml = $"<html> <head> <body> Üyeliğiniz aktif olması için <a href=http://localhost:5000/api/User/userActivate?confirmationKey={user.ConfirmationKey}&mail={user.Email}> bu </a> linke tıklayınız </body> </head> </html> "; string subject = "USER-ACTIVATION"; this.sendEmail(bodyHtml, subject, user.Email); }