public Authorization GetAuthorization(mulContext context, Users user) { Authorization data = new Authorization { Owner = context.Accounts.FirstOrDefault(o => o.Id == user.AccountId).OwnerId == user.Id }; return(data); }
public void SignupAccountAndUser(RegisterDto registration) { //Encrypt Password string pass = BCrypt.HashPassword(registration.Password); //.verify for checking var time = DateTime.UtcNow; var account = new Accounts { AccountName = registration.AccountName, DateCreated = time, Email = registration.Email }; var user = new Users { Account = account, FirstName = registration.FirstName, LastName = registration.LastName, DateCreated = time, Email = registration.Email, Password = pass }; using (var context = new mulContext()) { bool matchedAccount = context.Accounts.Any(o => o.Email == registration.Email); bool matchedUser = context.Users.Any(o => o.Email == registration.Email); if (matchedAccount || matchedUser) { if (matchedAccount) { Errored = true; ErrorMessages.Add("Email already exists for an account"); //debug context.Accounts.RemoveRange(context.Accounts.Where(o => o.Email == registration.Email)); context.SaveChanges(); } if (matchedUser) { Errored = true; ErrorMessages.Add("Email already exists for a user"); } } else { context.Users.Add(user); } context.SaveChanges(); account.Owner = user; context.SaveChanges(); //Check if exists based on email ErrorMessages.Add("successfully added new account"); } }
public void AuthenticateSignin(string password, string email) { try { using (var context = new mulContext()) { //Find account via email bool matchedWithEmail = context.Users.Any(o => o.Email == email.ToLower()); if (!matchedWithEmail) { Errored = true; ErrorMessages.Add("Email does not exist for user."); return; } var user = context.Users.FirstOrDefault(o => o.Email == email.ToLower()); //Verify password if (!BCrypt.Verify(password, user.Password)) { Errored = true; ErrorMessages.Add("Passwords do not match"); return; } var tokenManager = new TokenManager(); //Pull Authorization Data var authorizer = new Authorizer(); Authorization authorizationData = authorizer.GetAuthorization(context, user); //Generate Token string token = tokenManager.CreateToken(user.Id); //Create data transfer object Token = new AuthenticatedDto { Token = token, Authorized = authorizationData }; //Signup done, send DTO back } } catch (Exception ex) { Errored = true; ErrorMessages.Add(ex.Message); return; } }
public AuthenticatedDto Authenticate(string inputToken) { //Verify token var tokenManager = new TokenManager(); TokenContent tokenContent = tokenManager.VerifyToken(inputToken); //Check if verification worked if (tokenManager.Errored) { Errored = true; ErrorMessages.Add(tokenManager.ErrorMessage); return(null); } //Refresh token string token = tokenManager.CreateToken(tokenContent.UserId); Authorization authorizationData; try { using (mulContext context = new mulContext()) { Authorizer authorizer = new Authorizer(); Users user = context.Users.FirstOrDefault(o => o.Id == tokenContent.UserId); authorizationData = authorizer.GetAuthorization(context, user); } } catch (Exception Ex) { Errored = true; ErrorMessages.Add(Ex.Message); return(null); } var output = new AuthenticatedDto { Token = token, Authorized = authorizationData }; return(output); }