Exemple #1
0
        public void SignUp(
            string userId,
            string userLogin,
            string userDisplayName,
            string userEmail,
            string password)
        {
            try
            {
                var user = gameData.GetUser(userId);
                if (user == null)
                {
                    return;
                }

                if (!string.IsNullOrEmpty(user.PasswordHash))
                {
                    return;
                }

                user.DisplayName  = userDisplayName;
                user.UserName     = userLogin;
                user.Email        = userEmail;
                user.PasswordHash = secureHash.Get(password);
                gameData.Flush();
            }
            catch (Exception exc)
            {
                logger.LogError($"Error saving user data for '{userDisplayName} ({userId})'! (EXCEPTION): " + exc);
            }
        }
Exemple #2
0
        public async Task <bool> SetPasswordAsync(CreatePassword model)
        {
            if (model == null || string.IsNullOrWhiteSpace(model.Password))
            {
                return(false);
            }

            var sessionId = Context.GetSessionId();

            if (!sessionInfoProvider.TryGet(sessionId, out var session))
            {
                return(false);
            }

            var user = gameData.GetUser(session.AccountId);

            if (user == null)
            {
                return(false);
            }

            session.RequiresPasswordChange = false;
            user.PasswordHash = hasher.Get(model.Password);
            return(true);
        }
Exemple #3
0
        protected void AssertAuthTokenValidity(AuthToken authToken, [CallerMemberName] string callingMethod = null)
        {
            string errorMessage = null;

            if (authToken == null || string.IsNullOrEmpty(authToken.Token))
            {
                errorMessage = "Auth token cannot be null.";
            }
            else if (authToken.UserId == Guid.Empty)
            {
                errorMessage = "UserId cannot be null.";
            }
            else if (authToken.Expired)
            {
                errorMessage = "Auth token has expired.";
            }
            else if (authToken.Token != secureHasher.Get(authToken))
            {
                errorMessage = "Auth token did not match expected value.";
            }

            if (!string.IsNullOrEmpty(errorMessage))
            {
                var authTokenJson = authToken != null?Newtonsoft.Json.JsonConvert.SerializeObject(authToken) : "{}";

                logger.LogError(callingMethod + "->AssertAuthTokenValidity failed on request with error: " + errorMessage + ". " + authTokenJson);
                throw new Exception(errorMessage);
            }
        }
Exemple #4
0
        public async Task SignUpAsync(
            string userId,
            string userLogin,
            string userDisplayName,
            string userEmail,
            string password)
        {
            try
            {
                using (var db = ctxProvider.Get())
                {
                    var user = await db.User
                               .FirstOrDefaultAsync(x => x.UserId.Equals(userId, StringComparison.OrdinalIgnoreCase));

                    if (user == null)
                    {
                        return;
                    }

                    if (!string.IsNullOrEmpty(user.PasswordHash))
                    {
                        return;
                    }

                    user.DisplayName  = userDisplayName;
                    user.UserName     = userLogin;
                    user.Email        = userEmail;
                    user.PasswordHash = secureHash.Get(password);
                    db.Update(user);
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception exc)
            {
                await logger.WriteErrorAsync(
                    $"Error saving user data for '{userDisplayName} ({userId})'! (EXCEPTION): " + exc);
            }
        }
Exemple #5
0
        public bool SetPassword(string username, string newPassword)
        {
            if (string.IsNullOrWhiteSpace(newPassword))
            {
                return(false);
            }
            var user = gameData.GetUserByUsername(username);

            if (user == null)
            {
                return(false);
            }
            user.PasswordHash = secureHasher.Get(newPassword.Trim());
            return(true);
        }
Exemple #6
0
 private void AssertAuthTokenValidity(AuthToken authToken)
 {
     if (authToken == null)
     {
         throw new NullReferenceException(nameof(authToken));
     }
     if (authToken.UserId == Guid.Empty)
     {
         throw new NullReferenceException(nameof(authToken.UserId));
     }
     if (authToken.Expired)
     {
         throw new Exception("Session has expired.");
     }
     if (string.IsNullOrEmpty(authToken.Token))
     {
         throw new Exception("Session has expired.");
     }
     if (authToken.Token != secureHasher.Get(authToken))
     {
         throw new Exception("Session has expired.");
     }
 }