メインコンテンツにスキップ

Qtデスクトップアプリ

Casdoor用のQtデスクトップアプリ例

例の実行方法

前提条件

初期化

7つの文字列パラメータを初期化する必要があります:

名前説明ファイル
endpointあなたのCasdoorサーバーホスト/ドメインmainwindow.h
client_idあなたのCasdoorアプリケーションのクライアントIDmainwindow.h
client_secretあなたのCasdoorアプリケーションのクライアントシークレットmainwindow.h
certificateCasdoorアプリケーションの証明書の公開鍵mainwindow.h
org_nameあなたのCasdoor組織の名前mainwindow.h
app_nameあなたのCasdoorアプリケーションの名前mainwindow.h
redirect_urlあなたのCasdoorアプリケーションのコールバックURLのパスは、提供されていない場合はhttp://localhost:8080/callbackになりますmainwindow.h

endpointパラメータを設定しない場合、このプロジェクトはデフォルトのCasdoorサーバーとしてhttp://localhost:8000を使用します。

アプリケーションの実行

Qt Creatorの使用

  1. casdoor-cpp-qt-example.proを開く
  2. casdoor-cpp-qt-example.proでOpenSSLのINCLUDEPATHを設定する
  3. Ctrl + Rを押して開始

プレビュー

このQtデスクトップアプリケーションを実行すると、デスクトップに新しいウィンドウが表示されます。

インデックス

Sign Inボタンをクリックすると、デスクトップにログインウィンドウが表示されます。

ログイン

ログインに成功すると、デスクトップにユーザープロファイルウィンドウが表示され、あなたのユーザー情報が表示されます。

ユーザープロファイル

以下のGIF画像で、プロセス全体をプレビューできます。

プレビューGIF

統合方法

ログインウィンドウを開く

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

オープンアプリケーションイベントをリスニングする

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

認証コードを使用してユーザー情報を取得する

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