Qtデスクトップアプリ
Casdoor用のQtデスクトップアプリ例
例の実行方法
前提条件
初期化
7つの文字列パラメータを初期化する必要があります:
| 名前 | 説明 | ファイル |
|---|---|---|
| endpoint | あなたのCasdoorサーバーホスト/ドメイン | mainwindow.h |
| client_id | あなたのCasdoorアプリケーションのクライアントID | mainwindow.h |
| client_secret | あなたのCasdoorアプリケーションのクライアントシークレット | mainwindow.h |
| certificate | Casdoorアプリケーションの証明書の公開鍵 | 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の使用
casdoor-cpp-qt-example.proを開くcasdoor-cpp-qt-example.proでOpenSSLのINCLUDEPATHを設定するCtrl + Rを押して開始
プレビュー
このQtデスクトップアプリケーションを実行すると、デスクトップに新しいウィンドウが表示されます。

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

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

以下の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);