Софт Desktop GoogleAuthenticator (клиент + сервер) + source

Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Если вы когда-нибудь использовали Google Authenticator, то могли задаться вопросом: "А можно ли установить эту программу ко мне на компьютер?". Официального софта для пк не существует, однако разработчики создают свои адаптации, одной из которых я хотел бы с вами поделиться. Приложение является клиент-серверным, поэтому для успешной работы программы нужен настроенный сервер с MYSQL бд (инструкции будут ниже), на выходных уже сделаю полностью автономную версию клиента.

Программа написана на C++ CLR (простите), поэтому для ее работы на пк должен быть .NET Framework версии 4.7.2+. Если у вас не установлены необходимые для работы с CLR компоненты VS - также прочтите инструкцию в конце темы. Программа может долго обновлять пароли при медленном подключении/большом количестве подключенных сервисов, данная проблема может быть пофикшена путем перехода на сокеты или использованием автономного клиента.

Скриншоты работы программы:
Пожалуйста, авторизуйтесь для просмотра ссылки.

1605558437853.png
1605558471565.png
1605558522418.png

Официальный репозиторий GitHub:
Пожалуйста, авторизуйтесь для просмотра ссылки.


Насчет сервера:
Файлы из директории /Server/ нужно разместить на вашем хостинге, поддерживающим PHP 7.2. Также необходимо создать базу данных и почтовый адрес с поддержкой SMTP, я использовал хостинг timeweb.
Формат таблицы базы данных:
Название колонныТип данныхНазначение
IdINTId пользователя
UsernameTEXTИмя пользователя
EmailTEXTЭлектронная почта
PasswordTEXTПароль
SecretKeysLONGTEXTИнформация о сервисах

Для успешной работы с кодом, а в дальнейшем и с самим .exe десктопного приложения необходимо установить:
  • Установить .NET Framework не старше версии 4.7.2 (скорее всего он уже установлен). Сделать это можно с помощью установщика от Microsoft
    Пожалуйста, авторизуйтесь для просмотра ссылки.
  • Добавить необходимые компоненты в вашу сборку VS:
    • Открываем Visual Studio Installer
    • Выбираем необходимую вам версию и жмем Изменить (может находится в пункте Дополнительно)
    • В группе Классические и мобильные приложения ставим галочки напротив Разработка классических приложений .NET и Разработка классических приложений на C++
    • Нажимаем Изменить и ждем завершения установки
 
Последнее редактирование:
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,570
Реакции[?]
1,266
Поинты[?]
4K
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Последнее редактирование:
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Как и обещал добавил поддержку локального сохранение данных программы и возможность работать без удаленного сервера. Код в репозитории обновил, вам нужно будет изменить только адрес хоста (public: System::String^ host = "https://yoursite.com/";) на свой при желании добавить соответствующую поддержку.
Скачать собранный вариант (local only):
Пожалуйста, авторизуйтесь для просмотра ссылки.
VT на GetQR.exe:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(6/72)
VT на WinApp.exe:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(1/72)

P.S.: чтобы использовать оффлайн версию оставьте поля логина и пароля пустыми и нажмите на кнопку "Продолжить"
 
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проект в целом неплох.

Скажу немного по поводу сервера:
Но использовать mysqli_ вместо PDO:: большой-большой грех :)
Не совсем понятно зачем ты точно такую же функцию объявляешь в каждом файле
Почему не выведешь настройки базы данных в отдельный файл?
Кучу каких-то вредных привычек по типу

PHP:
if(!param1){
        return mda;
    else if (param2)
        return watafak;
    else {
        return cringe;
}
- так делать не стоит, я бы рекомендовал делать так:

PHP:
if(!param1){
        return mda;
}else if(param2){
        return watafak;
}else{
        return cringe;
}
Хоть разницы в работе кода нет (если ты не будешь добавлять больше одной строчки кода), но удобнее самому тебе.

Много чего, что можно вывести в один отдельный файл.

Вообще-то проект мне действительно понравился. Будут какие-то поддержки его в будущем?
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Проект в целом неплох.

Скажу немного по поводу сервера:
Но использовать mysqli_ вместо PDO:: большой-большой грех :)
Не совсем понятно зачем ты точно такую же функцию объявляешь в каждом файле
Почему не выведешь настройки базы данных в отдельный файл?
Кучу каких-то вредных привычек по типу

PHP:
if(!param1){
        return mda;
    else if (param2)
        return watafak;
    else {
        return cringe;
}
- так делать не стоит, я бы рекомендовал делать так:

PHP:
if(!param1){
        return mda;
}else if(param2){
        return watafak;
}else{
        return cringe;
}
Хоть разницы в работе кода нет (если ты не будешь добавлять больше одной строчки кода), но удобнее самому тебе.

Много чего, что можно вывести в один отдельный файл.

Вообще-то проект мне действительно понравился. Будут какие-то поддержки его в будущем?
Проект писал на коленке, поэтому можно встретить некоторые затупки в оптимизации количества кода, думаю, это не так страшно.
Проект поддерживать обязательно буду, добавлю поддержку стима и подобных сервисов
 
Эх, жизнь — хоть за хуй
Забаненный
Статус
Оффлайн
Регистрация
8 Июл 2019
Сообщения
2,993
Реакции[?]
1,656
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это именно то что было мне нужно :hearteyes:
 
Сверху Снизу