Qt Desktop App
Приклад десктопного додатку Qt для Casdoor.
Як запустити приклад
Передумови
Ініціалізація
Вам потрібно ініціалізувати 7 рядкових параметрів:
Назва | Опис | Файл |
---|---|---|
endpoint | Хост/домен вашого сервера Casdoor | mainwindow.h |
client_id | Client ID вашого додатку Casdoor | mainwindow.h |
client_secret | Client Secret вашого додатку Casdoor | mainwindow.h |
certificate | Публічний ключ для сертифіката додатку Casdoor | mainwindow.h |
org_name | Назва вашої організації Casdoor | mainwindow.h |
app_name | Назва вашого додатку Casdoor | mainwindow.h |
redirect_url | Шлях до URL зворотного виклику для вашого додатку Casdoor, буде http://localhost:8080/callback , якщо не вказано | mainwindow.h |
Якщо ви не встановите параметр endpoint
, цей проект використовуватиме http://localhost:8000 як сервер Casdoor за замовчуванням.
Запуск додатку
Використання Qt Creator
- Відкрити
casdoor-cpp-qt-example.pro
- Встановити
INCLUDEPATH
OpenSSL уcasdoor-cpp-qt-example.pro
- Натисніть
Ctrl + R
, щоб почати
Попередній перегляд
Після запуску цього десктопного додатку Qt, нове вікно буде показано на вашому робочому столі.
Якщо ви натиснете кнопку Sign In
, вікно входу буде показано на вашому робочому столі.
Після успішного входу, вікно профілю користувача буде показано на вашому робочому столі, відображаючи вашу інформацію користувача.
Ви можете переглянути весь процес у наступному 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);