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);
        }
Beispiel #2
0
 public ActionResult SaveAuthenticationCookies(UserWithToken userWithToken)
 {
     Response.Cookies.Append(CoockieNames.Email, userWithToken.User.Email);
     Response.Cookies.Append(CoockieNames.Token, userWithToken.Token);
     return(Ok());
 }