Application de bureau Qt
Un exemple d'application de bureau Qt pour Casdoor.
Comment exécuter l'exemple
Prérequis
Initialisation
Vous devez initialiser 7 paramètres de chaîne de caractères :
Nom | Description | Fichier |
---|---|---|
endpoint | Votre hôte/domaine de serveur Casdoor | mainwindow.h |
client_id | L'ID client de votre application Casdoor | mainwindow.h |
client_secret | Le Secret Client de votre application Casdoor | mainwindow.h |
certificate | La clé publique pour le certificat de l'application Casdoor | mainwindow.h |
org_name | Le nom de votre organisation Casdoor | mainwindow.h |
app_name | Le nom de votre application Casdoor | mainwindow.h |
redirect_url | Le chemin de l'URL de rappel pour votre application Casdoor, sera http://localhost:8080/callback s'il n'est pas fourni | mainwindow.h |
Si vous ne définissez pas le paramètre endpoint
, ce projet utilisera http://localhost:8000 comme serveur Casdoor par défaut.
Exécution de l'application
Utilisation de Qt Creator
- Ouvrir
casdoor-cpp-qt-example.pro
- Définir le
INCLUDEPATH
d'OpenSSL danscasdoor-cpp-qt-example.pro
- Appuyez sur
Ctrl + R
pour démarrer
Aperçu
Après avoir exécuté cette application de bureau Qt, une nouvelle fenêtre sera affichée sur votre bureau.
Si vous cliquez sur le bouton Sign In
, une fenêtre de connexion sera affichée sur votre bureau.
Après une connexion réussie, une fenêtre de profil utilisateur sera affichée sur votre bureau, affichant vos informations utilisateur.
Vous pouvez prévisualiser l'ensemble du processus dans l'image GIF suivante.
Comment intégrer
Ouverture de la fenêtre de connexion
// Load and display the login page of Casdoor
m_webview->page()->load(*m_signin_url);
m_webview->show();
Écoute de l'événement d'ouverture de l'application
// 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()));
Utilisation du code d'autorisation pour obtenir les informations de l'utilisateur
// Get the token and parse it with the JWT library
std::string token = m_casdoor->GetOAuthToken(code.toStdString());
auto decoded = m_casdoor->ParseJwtToken(token);