Passer au contenu principal

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 :

NomDescriptionFichier
endpointVotre hôte/domaine de serveur Casdoormainwindow.h
client_idL'ID client de votre application Casdoormainwindow.h
client_secretLe Secret Client de votre application Casdoormainwindow.h
certificateLa clé publique pour le certificat de l'application Casdoormainwindow.h
org_nameLe nom de votre organisation Casdoormainwindow.h
app_nameLe nom de votre application Casdoormainwindow.h
redirect_urlLe chemin de l'URL de rappel pour votre application Casdoor, sera http://localhost:8080/callback s'il n'est pas fournimainwindow.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

  1. Ouvrir casdoor-cpp-qt-example.pro
  2. Définir le INCLUDEPATH d'OpenSSL dans casdoor-cpp-qt-example.pro
  3. 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.

index

Si vous cliquez sur le bouton Sign In, une fenêtre de connexion sera affichée sur votre bureau.

connexion

Après une connexion réussie, une fenêtre de profil utilisateur sera affichée sur votre bureau, affichant vos informations utilisateur.

profile utilisateur

Vous pouvez prévisualiser l'ensemble du processus dans l'image GIF suivante.

aperçu gif

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);