Zum Hauptinhalt springen

Qt desktop app

The casdoor-cpp-qt-example shows Casdoor sign-in in a Qt desktop app.

Run the example

Voraussetzungen

Initialisierung

Set these 7 string parameters:

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

Default endpoint: http://localhost:8000 if not set.

Running

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

Index

Click Sign In to open the login window. After sign-in, the user profile is shown.

Anmelden user profile Vorschau-GIF

Integration

Open the login window

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

Listen for the callback (TCP)

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