Beispiel #1
0
 public HttpResult Login([FromBody] User user)
 {
     try
     {
         //Kiểm tra thông tin đầu vào
         if (string.IsNullOrWhiteSpace(user.Email))
         {
             return new HttpResult {
                        MessageCode = Entities.Enum.Enums.MessageCode.Error, Message = "Email is null"
             }
         }
         ;
         if (string.IsNullOrWhiteSpace(user.Password))
         {
             return new HttpResult {
                        MessageCode = Entities.Enum.Enums.MessageCode.Error, Message = "Password is null"
             }
         }
         ;
         //Kiểm tra User
         var checkuser = UnitOfWork.User.CheckInfoUser(user);
         if (!checkuser)
         {
             return new HttpResult {
                        MessageCode = Entities.Enum.Enums.MessageCode.Error, Message = "User does not exists."
             }
         }
         ;
         //Kiểm tra token còn hạn hay không
         var getToken = UnitOfWork.Token.GetTokenByUser(user.Email);
         if (getToken.Rows.Count != 0)
         {
             return(new HttpResult
             {
                 MessageCode = Entities.Enum.Enums.MessageCode.Success,
                 Content = new Token
                 {
                     Email = user.Email,
                     TokenId = getToken.Rows[0]["TokenId"].ToString(),
                     expiredin = (DateTime)(getToken.Rows[0]["ExpiredTime"]),
                     User_Type = getToken.Rows[0]["User_Type"].ToString()
                 }
             });
         }
         //Tạo mới token
         DateTime expiredDate = DateTime.Now.AddDays(3);
         string   tokenvalue  = JWTManagement.GenerateToken(user.Email, expiredDate);
         Token    token       = new Token
         {
             Email     = user.Email,
             TokenId   = tokenvalue,
             expiredin = expiredDate
         };
         //Lưu Token vào DB
         var SaveToken = UnitOfWork.Token.SaveToken(token);
         //Trả kết quả
         if (SaveToken.Rows.Count == 0)
         {
             return(new HttpResult
             {
                 MessageCode = Entities.Enum.Enums.MessageCode.Error,
                 Message = "Cannot save token."
             });
         }
         token.User_Type = SaveToken.Rows[0]["User_Type"].ToString();
         return(new HttpResult
         {
             MessageCode = Entities.Enum.Enums.MessageCode.Success,
             Content = token
         });
     }
     catch (Exception ex)
     {
         return(new HttpResult
         {
             MessageCode = Entities.Enum.Enums.MessageCode.Exception,
             Message = ex.Message
         });
     }
 }