Zum Hauptinhalt springen

Qt Desktop App

Ein Qt Desktop App Beispiel für Casdoor.

Wie man das Beispiel ausführt

Voraussetzungen

Initialisierung

Sie müssen 7 String-Parameter initialisieren:

NameBeschreibungDatei
endpointIhr Casdoor Server Host/Domainmainwindow.h
client_idDie Client-ID Ihrer Casdoor-Anwendungmainwindow.h
client_secretDas Client-Geheimnis Ihrer Casdoor-Anwendungmainwindow.h
certificateDer öffentliche Schlüssel für das Zertifikat der Casdoor-Anwendungmainwindow.h
org_nameDer Name Ihrer Casdoor-Organisationmainwindow.h
app_nameDer Name Ihrer Casdoor-Anwendungmainwindow.h
redirect_urlDer Pfad der Callback-URL für Ihre Casdoor-Anwendung, wird http://localhost:8080/callback sein, falls nicht angegebenmainwindow.h

Wenn Sie den endpoint Parameter nicht setzen, wird dieses Projekt http://localhost:8000 als Standard-Casdoor-Server verwenden.

Die Anwendung ausführen

Mit Qt Creator

  1. Öffnen Sie casdoor-cpp-qt-example.pro
  2. Setzen Sie den INCLUDEPATH von OpenSSL in casdoor-cpp-qt-example.pro
  3. Drücken Sie Ctrl + R, um zu starten

Vorschau

Nachdem Sie diese Qt Desktop-Anwendung ausgeführt haben, wird ein neues Fenster auf Ihrem Desktop angezeigt.

Index

Wenn Sie auf den Sign In Knopf klicken, wird ein Anmeldefenster auf Ihrem Desktop angezeigt.

Anmelden

Nach einer erfolgreichen Anmeldung wird ein Benutzerprofilfenster auf Ihrem Desktop angezeigt, das Ihre Benutzerinformationen anzeigt.

Benutzerprofil

Sie können den gesamten Prozess in dem folgenden GIF-Bild vorschauen.

Vorschau-GIF

Wie man integriert

Das Anmeldefenster öffnen

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

Auf das Öffnen der Anwendungsereignis hören

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

Mit dem Auth-Code die Benutzerinfo abrufen

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