Перейти до основного вмісту

Qt Desktop App

Приклад десктопного додатку Qt для Casdoor.

Як запустити приклад

Передумови

Ініціалізація

Вам потрібно ініціалізувати 7 рядкових параметрів:

НазваОписФайл
endpointХост/домен вашого сервера Casdoormainwindow.h
client_idClient ID вашого додатку Casdoormainwindow.h
client_secretClient 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()));

Використання Auth Code для отримання інформації користувача

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