public IActionResult RefreshToken([FromBody] JWModel parameters)
        {
            if (parameters == null)
            {
                return(Json(new ResponseModel <Office365Model>
                {
                    status = false,
                    message = "null of parameters",
                    Data = null
                }));
            }
            // if (parameters.GrantType == "refresh_token")
            // {
            var result = JwtAuthentication.DoRefreshToken(parameters);

            if (result.status)
            {
                return(Ok(new { Token = result.Data.Token, RefreshToken = result.Data.RefreshToken, ExpiresIn = result.Data.ExpiresIn, Email = result.Data.Email }));
            }
            else
            {
                return(Json(result));
            }
            //}
            //else
            //{
            //    return Json(new ResponseModel<Office365Model>
            //    {
            //        status = false,
            //        message = "bad request",
            //        Data = null
            //    });
            //}
        }
        public ResponseModel <Office365Model> DoRefreshToken(JWModel parameters)
        {
            var token = RToken.GetToken(parameters.RefreshToken, parameters.Email);

            if (token == null)
            {
                return(new ResponseModel <Office365Model>
                {
                    status = false,
                    message = "can not refresh token",
                    Data = null
                });
            }

            if (token.IsStop == 1)
            {
                return(new ResponseModel <Office365Model>
                {
                    status = false,
                    message = "refresh token has expired",
                    Data = null
                });
            }

            var refresh_token = Guid.NewGuid().ToString().Replace("-", "");

            token.IsStop = 1;
            //expire the old refresh_token and add a new refresh_token
            var updateFlag = RToken.ExpireToken(token);

            var addFlag = RToken.AddToken(new RToken
            {
                Email        = parameters.Email,
                RefreshToken = refresh_token,
                Id           = Guid.NewGuid().ToString(),
                IsStop       = 0
            });

            if (updateFlag && addFlag)
            {
                return(new ResponseModel <Office365Model>
                {
                    status = true,
                    message = "OK",
                    Data = GetJwt(parameters.Email, refresh_token)
                });
            }
            else
            {
                return(new ResponseModel <Office365Model>
                {
                    status = false,
                    message = "can not expire token or a new token",
                    Data = null
                });
            }
        }