Qt 桌面应用程序
一个为 Casdoor的 Qt桌面应用程序示例。
How to Run the Example
前置要求
初始化
You need to initialize 7 string parameters:
名称 | 描述 | 文件 |
---|---|---|
endpoint | 您的 Casdoor 服务器主机/域 | mainwindow.h |
client_id | 您的 Casdoor 应用程序的客户端 ID | mainwindow.h |
client_secret | The Client Secret of your Casdoor application | mainwindow.h |
certificate | Casdoor 应用程序证书的公钥 | mainwindow.h |
org_name | 您的Casdoor应用程序的名称 | mainwindow.h |
app_name | 您的Casdoor应用程序的名称 | mainwindow.h |
redirect_url | 您的Casdoor 应用程序的回调URL路径将是 casdoor://callback 如果没有提供 | mainwindow.h |
If you don't set the endpoint
parameter, this project will use http://localhost:8000 as the default Casdoor server.
Running the Application
Using Qt Creator
- Open
casdoor-cpp-qt-example.pro
- Set the
INCLUDEPATH
of OpenSSL incasdoor-cpp-qt-example.pro
- Press
Ctrl + R
to start
效果预览
After running this Qt desktop application, a new window will be shown on your desktop.
If you click the Sign In
button, a login window will be shown on your desktop.
After a successful login, a user profile window will be shown on your desktop, displaying your user information.
You can preview the entire process in the following GIF image.
How to Integrate
Opening the Login Window
// Load and display the login page of Casdoor
m_webview->page()->load(*m_signin_url);
m_webview->show();
Listening to the Open Application Event
// 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()));
Using Auth Code to Get the User Info
// Get the token and parse it with the JWT library
std::string token = m_casdoor->GetOAuthToken(code.toStdString());
auto decoded = m_casdoor->ParseJwtToken(token);