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:
Name | Beschreibung | Datei |
---|---|---|
endpoint | Ihr Casdoor Server Host/Domain | mainwindow.h |
client_id | Die Client-ID Ihrer Casdoor-Anwendung | mainwindow.h |
client_secret | Das Client-Geheimnis Ihrer Casdoor-Anwendung | mainwindow.h |
certificate | Der öffentliche Schlüssel für das Zertifikat der Casdoor-Anwendung | mainwindow.h |
org_name | Der Name Ihrer Casdoor-Organisation | mainwindow.h |
app_name | Der Name Ihrer Casdoor-Anwendung | mainwindow.h |
redirect_url | Der Pfad der Callback-URL für Ihre Casdoor-Anwendung, wird http://localhost:8080/callback sein, falls nicht angegeben | mainwindow.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
- Öffnen Sie
casdoor-cpp-qt-example.pro
- Setzen Sie den
INCLUDEPATH
von OpenSSL incasdoor-cpp-qt-example.pro
- 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.
Wenn Sie auf den Sign In
Knopf klicken, wird ein Anmeldefenster auf Ihrem Desktop angezeigt.
Nach einer erfolgreichen Anmeldung wird ein Benutzerprofilfenster auf Ihrem Desktop angezeigt, das Ihre Benutzerinformationen anzeigt.
Sie können den gesamten Prozess in dem folgenden GIF-Bild vorschauen.
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);