public async Task <ActionResult <UserWithToken> > RegisterUser([FromBody] Customer user) { var salt = GenerateSalt(); var pass = HashingPassword(user.Password, salt); var cus = new Customer { Name = user.Name, Lastname = user.Lastname, Phone = user.Phone, CustomerRefNo = user.CustomerRefNo, Address = user.Address, Status = user.Status, TimeCreate = DateTime.Now, TimeUpdate = DateTime.Now, Email = user.Email, Password = pass, RoleId = user.RoleId, Salt = Convert.ToBase64String(salt) }; Wallet wallet = new Wallet(); wallet.CustomerId = cus.Id; wallet.CustomerRefNo = cus.CustomerRefNo; wallet.TimeCreate = DateTime.Now; wallet.TimeUpdate = DateTime.Now; wallet.WalletStatus = 1; wallet.WalletNo = cus.Phone + "01"; wallet.Balance = 0; cus.Wallets.Add(wallet); _context.Customers.Add(cus); await _context.SaveChangesAsync(); //load role for registered user user = await _context.Customers.Include(u => u.Wallets) .Where(u => u.Id == cus.Id) .FirstOrDefaultAsync(); UserWithToken userWithToken = null; if (user != null) { RefreshToken refreshToken = GenerateRefreshToken(); user.RefreshTokens.Add(refreshToken); await _context.SaveChangesAsync(); userWithToken = new UserWithToken(user); userWithToken.RefreshToken = refreshToken.Token; } if (userWithToken == null) { return(NotFound()); } //sign your token here here.. userWithToken.AccessToken = GenerateAccessToken(user.Id); return(userWithToken); }
public ActionResult SaveAuthenticationCookies(UserWithToken userWithToken) { Response.Cookies.Append(CoockieNames.Email, userWithToken.User.Email); Response.Cookies.Append(CoockieNames.Token, userWithToken.Token); return(Ok()); }