Перейти к основному содержанию

Qt Desktop App

Пример настольного приложения Qt для Casdoor

Как запустить пример

Предварительные требования

Инициализация

Вам нужно инициализировать 7 строковых параметров:

ИмяОписаниеФайл
endpointХост/домен вашего сервера Casdoormainwindow.h
client_idID клиента вашего приложения Casdoormainwindow.h
client_secretСекрет клиента вашего приложения Casdoormainwindow.h
certificateПубличный ключ для сертификата приложения Casdoormainwindow.h
org_nameНазвание вашей организации Casdoormainwindow.h
app_nameНазвание вашего приложения Casdoormainwindow.h
redirect_urlПуть обратного вызова URL для вашего приложения Casdoor, будет http://localhost:8080/callback, если не указанmainwindow.h

Если вы не установите параметр endpoint, этот проект будет использовать http://localhost:8000 в качестве сервера Casdoor по умолчанию.

Запуск приложения

Использование Qt Creator

  1. Открыть casdoor-cpp-qt-example.pro
  2. Установите INCLUDEPATH OpenSSL в casdoor-cpp-qt-example.pro
  3. Нажмите Ctrl + R, чтобы начать

Предварительный просмотр

После запуска этого настольного приложения Qt на вашем рабочем столе появится новое окно.

индекс

Если вы нажмете кнопку Sign In, на вашем рабочем столе появится окно входа.

вход в систему

После успешного входа на вашем рабочем столе появится окно профиля пользователя, отображающее вашу информацию о пользователе.

профиль пользователя

Вы можете просмотреть весь процесс в следующем GIF-изображении.

предварительный просмотр gif

Как интегрировать

Открытие окна входа

// Load and display the login page of Casdoor
m_webview->page()->load(*m_signin_url);
m_webview->show();

Отслеживание события открытия приложения

// Initialize the TcpServer object and listen on port 8080
m_tcpserver = new QTcpServer(this);
if (!m_tcpserver->listen(QHostAddress::LocalHost, 8080)) {
qDebug() << m_tcpserver->errorString();
close();
}
connect(m_tcpserver, SIGNAL(newConnection()), this, SLOT(on_tcp_connected()));

Использование кода авторизации для получения информации о пользователе

// Get the token and parse it with the JWT library
std::string token = m_casdoor->GetOAuthToken(code.toStdString());
auto decoded = m_casdoor->ParseJwtToken(token);