Qt desktop app
Integrate Hanzo IAM in a Qt (C++) desktop app with WebEngine.
The iam-cpp-qt-example shows Hanzo IAM sign-in in a Qt desktop app.
Run the example
Prerequisites
Initialization
Set these 7 string parameters:
| Name | Description | File |
|---|---|---|
| endpoint | Your Hanzo IAM server host/domain | mainwindow.h |
| client_id | The Client ID of your Hanzo IAM application | mainwindow.h |
| client_secret | The Client Secret of your Hanzo IAM application | mainwindow.h |
| certificate | The public key for the Hanzo IAM application's cert | mainwindow.h |
| org_name | The name of your Hanzo IAM organization | mainwindow.h |
| app_name | The name of your Hanzo IAM application | mainwindow.h |
| redirect_url | The path of the callback URL for your Hanzo IAM application, will be http://localhost:8080/callback if not provided | mainwindow.h |
Default endpoint: http://localhost:8000 if not set.
Running
Qt Creator
- Open
iam-cpp-qt-example.pro - Set the
INCLUDEPATHof OpenSSL iniam-cpp-qt-example.pro - Press
Ctrl + Rto start
Preview

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

Integration
Open the login window
// Load and display the login page of Hanzo IAM
m_webview->page()->load(*m_signin_url);
m_webview->show();
### Listen for the callback (TCP)
```cpp
// 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
```cpp
// Get the token and parse it with the JWT library
std::string token = m_iam->GetOAuthToken(code.toStdString());
auto decoded = m_iam->ParseJwtToken(token);How is this guide?
Last updated on