Пример #1
0
        public async Task <RefreshTokenDm> RefreshAsync(RefreshTokenVm refreshTokenVm)
        {
            await SetActiveAccessTokenAsync(refreshTokenVm.RefreshToken);

            if (_activeAccessToken is null)
            {
                return(CreateInvalidResult(EResultStatus.InvalidRefreshToken));
            }

            if (!_activeAccessToken.IsActive)
            {
                return(CreateInvalidResult(EResultStatus.InvalidRefreshToken));
            }

            if (!IsValidationAccessToken(refreshTokenVm.AccessToken))
            {
                return(CreateInvalidResult(EResultStatus.InvalidRefreshToken));
            }

            if (!AccessTokenHelper.IsValidationExpirationDate(_activeAccessToken.ExpirationDate))
            {
                return(CreateInvalidResult(EResultStatus.RefreshTokenExpired));
            }


            return(CreateSuccessResult());
        }
Пример #2
0
        private static bool IsValidationRefreshTokenVm(RefreshTokenVm refreshTokenVm)
        {
            var hasError = refreshTokenVm.AccessToken is null ||
                           refreshTokenVm.RefreshToken is null ||
                           refreshTokenVm.AccessToken.Length <=
                           AppConsts.MinimumAccessTokenLength ||
                           refreshTokenVm.AccessToken.Length <=
                           AppConsts.MinimumRefreshTokenLength;


            return(hasError);
        }
Пример #3
0
        public async Task <ResultModel <RefreshTokenResultVm> > RefreshTokenAsync(RefreshTokenVm refreshTokenVm)
        {
            if (!IsValidationRefreshTokenVm(refreshTokenVm))
            {
                return(CreateInvalidResult <RefreshTokenResultVm>(EResultStatus.InvalidData));
            }

            var result = await _refreshTokenService.RefreshAsync(refreshTokenVm);

            if (!result.IsAuthenticated)
            {
                return(CreateInvalidResult <RefreshTokenResultVm>(result.ResultStatus));
            }

            var resultVm = await CreateRefreshTokenAsync(result.UserId);

            return(CreateSuccessResult(resultVm));
        }