private async Task <AccessTokenViewModel> GenerateAccessTokenAsync(ApplicationUser user)
        {
            string refreshToken          = Guid.NewGuid().ToString();
            var    dtIssued              = DateTime.UtcNow;
            var    dtExpired             = dtIssued.AddMinutes(SWCmsConstants.AuthConfiguration.AuthCookieExpiration);
            var    dtRefreshTokenExpired = dtIssued.AddDays(SWCmsConstants.AuthConfiguration.AuthCookieExpiration);

            RefreshTokenViewModel vmRefreshToken = new RefreshTokenViewModel(
                new RefreshTokens()
            {
                Id        = refreshToken,
                Email     = user.Email,
                IssuedUtc = dtIssued,
                ClientId  = SWCmsConstants.AuthConfiguration.Audience,
                Username  = user.UserName,
                //Subject = SWCmsConstants.AuthConfiguration.Audience,
                ExpiresUtc = dtRefreshTokenExpired
            });

            var saveRefreshTokenResult = await vmRefreshToken.SaveModelAsync();

            AccessTokenViewModel token = new AccessTokenViewModel()
            {
                Access_token  = await GenerateTokenAsync(user, dtExpired, refreshToken),
                Refresh_token = saveRefreshTokenResult.Data.Id,
                Token_type    = SWCmsConstants.AuthConfiguration.TokenType,
                Expires_in    = SWCmsConstants.AuthConfiguration.AuthCookieExpiration,
                //UserData = user,
                Issued  = dtIssued,
                Expires = dtExpired,
            };

            return(token);
        }
        private async Task <AccessTokenViewModel> GenerateAccessTokenAsync(ApplicationUser user, bool isRemember)
        {
            var    dtIssued              = DateTime.UtcNow;
            var    dtExpired             = dtIssued.AddMinutes(MixService.GetAuthConfig <int>("CookieExpiration"));
            var    dtRefreshTokenExpired = dtIssued.AddMinutes(MixService.GetAuthConfig <int>("RefreshTokenExpiration"));
            string refreshTokenId        = string.Empty;
            string refreshToken          = string.Empty;

            if (isRemember)
            {
                refreshToken = Guid.NewGuid().ToString();
                RefreshTokenViewModel vmRefreshToken = new RefreshTokenViewModel(
                    new RefreshTokens()
                {
                    Id        = refreshToken,
                    Email     = user.Email,
                    IssuedUtc = dtIssued,
                    ClientId  = MixService.GetAuthConfig <string>("Audience"),
                    Username  = user.UserName,
                    //Subject = SWCmsConstants.AuthConfiguration.Audience,
                    ExpiresUtc = dtRefreshTokenExpired
                });

                var saveRefreshTokenResult = await vmRefreshToken.SaveModelAsync();

                refreshTokenId = saveRefreshTokenResult.Data?.Id;
            }

            AccessTokenViewModel token = new AccessTokenViewModel()
            {
                Access_token  = await GenerateTokenAsync(user, dtExpired, refreshToken),
                Refresh_token = refreshTokenId,
                Token_type    = MixService.GetAuthConfig <string>("TokenType"),
                Expires_in    = MixService.GetAuthConfig <int>("CookieExpiration"),
                //UserData = user,
                Issued  = dtIssued,
                Expires = dtExpired,
                LastUpdateConfiguration = MixService.GetConfig <DateTime?>("LastUpdateConfiguration")
            };

            return(token);
        }