public async Task <IActionResult> Login(AccountLoginReq request)
        {
            if (ModelState.IsValid)
            {
                var cookieOptions = new CookieOptions()
                {
                    HttpOnly = true,
                    SameSite = SameSiteMode.None,
                    Secure   = true
                };
                var response    = new AccountLoginRes();
                var loginResult = await _accountService.Login(request, response);

                if (loginResult != null)
                {
                    Response.Cookies.Append("X-Access-Token", loginResult.Token, cookieOptions);
                    Response.Cookies.Append("X-Username", loginResult.UserName, cookieOptions);
                    Response.Cookies.Append("X-Refresh-Token", loginResult.RefreshToken, cookieOptions);
                    return(Ok(response));
                }
                Response.Cookies.Delete("X-Access-Token", cookieOptions);
                Response.Cookies.Delete("X-Username", cookieOptions);
                Response.Cookies.Delete("X-Refresh-Token", cookieOptions);
                return(Unauthorized("Sai tên đăng nhập hoặc mật khẩu, xin mời kiểm tra lại thông tin"));
            }
            return(BadRequest(ModelState));
        }
Example #2
0
    public void TryLogin(string username, string password)
    {
        AccountLoginReq req = new AccountLoginReq();

        req.AccountName = username;
        req.Password    = password;
        NetworkManager.Instance.Send(MessageID.MSG_ACCOUNT_LOGIN_REQ, req, 0, 0);
    }
Example #3
0
    private void OnReq_Login(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AccountLoginReq        req = Serializer.Deserialize <AccountLoginReq>(ms);
        AccountLoginAck        ack = new AccountLoginAck();

        NetworkManager.Instance.Send(MessageID.MSG_ACCOUNT_LOGIN_ACK, ack, 0, 0);
    }
        //public async Task<string> CreateCookie(AccountLoginRes response)
        //{

        //}

        public async Task <AccountLoginResult> Login(AccountLoginReq request, AccountLoginRes response)
        {
            var user = await _userManager.FindByNameAsync(request.Username);

            if (user != null)
            {
                var loginResult = await _signInManager.CheckPasswordSignInAsync(user, request.Password, false);

                if (loginResult.Succeeded)
                {
                    response.FullName = $"{user.LastName} {user.FirstName}";
                    return(new AccountLoginResult()
                    {
                        UserName = user.UserName,
                        Token = await _tokenService.CreateToken(user),
                        RefreshToken = user.RefreshToken
                    });
                }
            }
            return(null);
        }