Пример #1
0
        public LoginResult ConfirmLogin(string token)
        {
            Token tokenDetails = _securityRepository.GetLoginTokenDetails(token);

            if (tokenDetails == null)
            {
                _logger.Info($"Token not found '{token}'");
                return(new LoginResult(ErrorCodeType.LoginTokenInfoNotFound));
            }

            if (tokenDetails.IsExpired)
            {
                _logger.Info($"Token is expired '{tokenDetails}'");
                return(new LoginResult(ErrorCodeType.LoginTokenIsExpired));
            }

            string username;

            try
            {
                username = _securityRepository.ConfirmLogin(tokenDetails.ForUserId);
                _logger.Debug($"Login confirmed for user: '******'");
            }
            catch (Exception e)
            {
                _logger.Error($"Failed to confirm login '{tokenDetails}'", e);
                return(new LoginResult(ErrorCodeType.UnknownError, e.Message));
            }

            return(new LoginResult(username));
        }