public static LogoutResult Logout(NameValueCollection Query) { try { #region Получаем параметры запроса string _id = Query.Get("user_id"); string _token = Query.Get("access_token"); #endregion #region Проверка на правильность id и token Status _status = Validator.UserIdOrToken(_id, _token); if (_status != Status.SUCCESSFULLY_COMPLETED) { return new LogoutResult(_status); } #endregion #region Подключение к базе данных Sql _sql; try { _sql = new Sql(); if (!_sql.Connected) { return new LogoutResult(Status.ERROR_CONNECTION_DATABASE); } } catch { return new LogoutResult(Status.ERROR_CONNECTION_DATABASE); } #endregion #region Преобразуем id в число long _uid = 0; try { _uid = Convert.ToInt64(_id); } catch { return new LogoutResult(Status.INCORRECT_USERID); } #endregion #region Удаляем токен try { if (_sql.IsToken(_uid, _token)) { if (_sql.RemoveToken(_uid)) { return new LogoutResult(Status.SUCCESSFULLY_COMPLETED); } else { return new LogoutResult(Status.ERROR); } } else { return new LogoutResult(Status.ACCESS_DENIED); } } catch { return new LogoutResult(Status.ERROR_QUERY_DATABASE); } #endregion } catch { return new LogoutResult(Status.EXCEPTION); } }
public static SigninResult Signin(NameValueCollection Query) { try { #region Получаем параметры запроса string _email = Query.Get("email"); string _passw = Query.Get("password"); #endregion #region Проверка на правильность email и пароля Status _status = Validator.EmailOrPassword(_email, _passw); if (_status != Status.SUCCESSFULLY_COMPLETED) { return new SigninResult(_status); } #endregion #region Подключение к базе данных Sql _sql; try { _sql = new Sql(); if (!_sql.Connected) { return new SigninResult(Status.ERROR_CONNECTION_DATABASE); } } catch { return new SigninResult(Status.ERROR_CONNECTION_DATABASE); } #endregion #region Получаем md5 хеш пароля string _hash = Hash.Md5(_passw); #endregion #region Проверяем на существование пользователя try { if (_sql.IsUser(_email, _hash)) { return new SigninResult(Status.USER_FOUND); } } catch { return new SigninResult(Status.ERROR_QUERY_DATABASE); } #endregion #region Добавляем пользователя try { if (_sql.SetUser(_email, _hash)) { return new SigninResult(Status.SUCCESSFULLY_COMPLETED); } else { return new SigninResult(Status.ERROR); } } catch { return new SigninResult(Status.ERROR_QUERY_DATABASE); } #endregion } catch { return new SigninResult(Status.EXCEPTION); } }
public static LoginResult Login(NameValueCollection Query) { try { #region Получаем параметры запроса string _email = Query.Get("email"); string _passw = Query.Get("password"); #endregion #region Проверка на правильность email и пароля Status _status = Validator.EmailOrPassword(_email, _passw); if (_status != Status.SUCCESSFULLY_COMPLETED) { return new LoginResult(_status); } #endregion #region Подключение к базе данных Sql _sql; try { _sql = new Sql(); if (!_sql.Connected) { return new LoginResult(Status.ERROR_CONNECTION_DATABASE); } } catch { return new LoginResult(Status.ERROR_CONNECTION_DATABASE); } #endregion #region Получаем md5 хеш пароля string _hash = Hash.Md5(_passw); #endregion #region Проверяем на существование пользователя long _id; try { _id = _sql.GetUser(_email, _hash); if (_id == -1) { return new LoginResult(Status.USER_NOT_FOUND); } } catch { return new LoginResult(Status.ERROR_QUERY_DATABASE); } #endregion #region Удаляем токен try { if (_sql.IsToken(_id)) { if (!_sql.RemoveToken(_id)) { return new LoginResult(Status.ERROR_RETOKEN); } } } catch { return new LoginResult(Status.ERROR_QUERY_DATABASE); } #endregion #region Пишем новый токен try { string _token = Hash.Token(_id); if (_sql.SetToken(_id, _token)) { return new LoginResult(Status.SUCCESSFULLY_COMPLETED, new Dictionary<string, object>() { { "user_id", _id }, { "access_token", _token } }); } else { return new LoginResult(Status.ERROR); } } catch { return new LoginResult(Status.ERROR_QUERY_DATABASE); } #endregion } catch { return new LoginResult(Status.EXCEPTION); } }