3
3eJIeHbIuҚар. 7, 2021, 7:02 Т.Ж.

Авторизация в приложении.

Подскажите пожалуйста, в каком направлении работать. Необходимо реализовать форму для авторизации в приложении. Пользователь вводит пароль и логин и работает с приложением, после нажимает кнопку сохранить и выходит. Как лучше реализовать, с QSettings или с БД? Помогите разобраться, не знаю с чего начать.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

20
IscanderChe
  • Қар. 7, 2021, 7:05 Т.Ж.

БД + хэширование паролей.

    3
    • Қар. 7, 2021, 7:08 Т.Ж.

    Какую бд оптимальнее всего использовать в Qt?

      IscanderChe
      • Қар. 7, 2021, 7:12 Т.Ж.

      Это зависит от задач. Проще всего - SQLite.

        3
        • Қар. 7, 2021, 7:30 Т.Ж.

        Самые простые задачи, в разных ячейках - разные значения. Отнимать, прибавлять.

          3
          • Қар. 10, 2021, 2:42 Т.Қ.

          А в бд как? Строка - логин, столбик - пароль?

            IscanderChe
            • Қар. 10, 2021, 2:50 Т.Қ.

            Не строка-столбик, а поле. У БД есть только поле, имеющее соответствующее наименование. Ну, в табличных терминах, заголовки таблицы и ячейки. В поле логина можете хранить прямые данные, а вот в поле пароля - только хэш пароля. Это нужно, чтобы его не взломали. Если БД взломают, то открыто хранимые пароли будут доступны взломщику. Хэш шифрует пароль теоретически невосстанавливаемо. По крайней мере, за разумное время.

              3
              • Қар. 22, 2021, 11:23 Т.Ж.

              Направьте пожалуйста в нужное русло. Вник в основные аспекты БД. Как применить это в Qt? Поле ввода line edit используется для этих целей? И как это выражается в синтаксисе. Чтобы данные с line edit попадали в таблицу БД. В консоли работаю с mysql, а в Qt не могу разобраться.

                IscanderChe
                • Қар. 22, 2021, 11:38 Т.Ж.
                • (өңделген)

                Начните с SQLite, проще реализовать создание БД и её последующее редактирование через код. На этом портале есть несколько примеров, изучите их.

                QLineEdit используется, само собой. Ведь для авторизации надо логин-пароль как-то вводить. И QPushButton нужна, чтобы по нажатию на неё передать данные приложению. Привязываете через сигнально-слотовое соединение нажатие на кнопку к слоту проверки пары логин-пароль, а в слоте извлекаете данные из БД и сравниваете с пользовательским вводом.

                Ну, и не худо бы, наверное, форму регистрации пользователей иметь. Всё аналогично вышесказанному за исключением содержания слота: в этом случае данные надо записывать в БД.

                  IscanderChe
                  • Қар. 22, 2021, 4:01 Т.Қ.

                  Чуть попозже накидаю простенький примерчик.

                    IscanderChe
                    • Қар. 23, 2021, 4:46 Т.Ж.

                    Ловите, изучайте.
                    SimpleAutorization.zip SimpleAutorization.zip

                      3
                      • Қар. 23, 2021, 12:02 Т.Қ.

                      Спасибо большое.

                        3
                        • Қар. 23, 2021, 12:43 Т.Қ.

                        Я немного не понял, сущности sqlite для работы с этой субд в Qt надо дополнительно скачивать или нет?

                          IscanderChe
                          • Қар. 23, 2021, 2:01 Т.Қ.

                          Ничего не надо скачивать, всё должно работать "из коробки".

                            3
                            • Жел. 1, 2021, 11:48 Т.Ж.

                            Пытаюсь разобраться в вашем примере и понял то что просто пытаюсь скопировать ваш код себе и запустить, но я так не хочу. Хочу разобраться в нём до каждой инструкции, только вот не получается. Есть незнакомые сущности, какая инструкция за что отвечает. Знаком с С++ и с ООП но реверс-инженеринг провести немогу) Подскажите пожалуйста, как набить руку в этом.

                              U
                              • Жел. 2, 2021, 2:19 Т.Ж.

                              "Хочу разобраться в нём до каждой инструкции"
                              Хотите разобраться - разбирайтесь)) Как? Увидели метод, который вызывает интерес => нажали левой кнопкой мыши на него => нажали f1 => прочитали в открывшемся хелпе, что метод делает и как.
                              Такой же подход к классам и сущностям))

                              Все программисты так работают) Никто не помнит наизусть все классы и методы, все принимаемые и возвращаемые значения... Все жмут f1 и читают)
                              И это не реверс-инженеринг... Это обычное чтение кода...
                              "Чукча не читатель, чукча писатель" - это не про Вас должно быть)

                                IscanderChe
                                • Жел. 2, 2021, 10:57 Т.Ж.

                                Undergiven верно всё написал. В комплект поставки Qt входит приложение Assistant, там полный хелп по языку, им и пользуйтесь.

                                Я тоже не вдруг начал кодить на Qt. Постепенно, с простейших примеров, "дорос" вот до этого. Помочь может только практическое применение, других метод не придумано.

                                  3
                                  • Жел. 2, 2021, 11:12 Т.Ж.

                                  спасибо.

                                    3
                                    • Жел. 10, 2021, 12:15 Т.Қ.
                                    • (өңделген)

                                    Я правильно понимаю, autorizationdialog родительское окно в котором происходит регистрация, widget - производное? Или в widget происходит регистрация а в autorizationdialog уже когда вошёл в бд?

                                      IscanderChe
                                      • Жел. 11, 2021, 12:41 Т.Ж.

                                      Регистрацию я не реализовывал, только авторизацию пользователя. Это вы сами думайте над регистрацией, ничего сложного там нет. Те же формы с кнопками, только функционал немножко другой. Ну, и запрос к базе данных на запись.

                                      widget - основной, с него начинается работа программы. autorizationdialog - вызывается по нажатию на кнопку "Войти" (m_autorizeButton).

                                        3
                                        • Жел. 11, 2021, 12:49 Т.Ж.
                                        • (өңделген)

                                        Спасибо, разобрался. Единственный момент, С++ сложный как язык. Море моментов где можно запутаться и программа будет подвисать. Оптимизации всякие.

                                          Пікірлер

                                          Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                          Кіріңіз немесе Тіркеліңіз
                                          Г

                                          C++ - Тест 001. Первая программа и типы данных

                                          • Нәтиже:66ұпай,
                                          • Бағалау ұпайлары-1
                                          t

                                          C++ - Тест 001. Первая программа и типы данных

                                          • Нәтиже:33ұпай,
                                          • Бағалау ұпайлары-10
                                          t

                                          Qt - Тест 001. Сигналы и слоты

                                          • Нәтиже:52ұпай,
                                          • Бағалау ұпайлары-4
                                          Соңғы пікірлер
                                          G
                                          GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
                                          Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
                                          d
                                          dblas5Шілде 5, 2024, 11:02 Т.Ж.
                                          QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                          k
                                          kmssrАқп. 8, 2024, 6:43 Т.Қ.
                                          Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                          АК
                                          Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
                                          Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                          Енді форумда талқылаңыз
                                          Evgenii Legotckoi
                                          Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                                          добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                          F
                                          FynjyШілде 22, 2024, 4:15 Т.Ж.
                                          при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
                                          BlinCT
                                          BlinCTМаусым 25, 2024, 1 Т.Ж.
                                          Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
                                          BlinCT
                                          BlinCTМамыр 5, 2024, 5:46 Т.Ж.
                                          Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                                          Evgenii Legotckoi
                                          Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
                                          Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                                          Бізді әлеуметтік желілерде бақылаңыз