Aplicación de escritorio Qt
Un ejemplo de aplicación de escritorio Qt para Casdoor.
Cómo ejecutar el ejemplo
Prerrequisitos
Inicialización
Necesitas inicializar 7 parámetros de cadena:
Nombre | Descripción | Archivo |
---|---|---|
endpoint | El host/dominio de tu servidor Casdoor | mainwindow.h |
client_id | El ID de Cliente de tu aplicación Casdoor | mainwindow.h |
client_secret | El Secreto de Cliente de tu aplicación Casdoor | mainwindow.h |
certificate | La clave pública para el certificado de la aplicación Casdoor | mainwindow.h |
org_name | El nombre de tu organización Casdoor | mainwindow.h |
app_name | El nombre de tu aplicación Casdoor | mainwindow.h |
redirect_url | La ruta de la URL de callback para tu aplicación Casdoor, será http://localhost:8080/callback si no se proporciona | mainwindow.h |
Si no configuras el parámetro endpoint
, este proyecto usará http://localhost:8000 como el servidor Casdoor predeterminado.
Ejecutando la Aplicación
Usando Qt Creator
- Abrir
casdoor-cpp-qt-example.pro
- Establecer el
INCLUDEPATH
de OpenSSL encasdoor-cpp-qt-example.pro
- Presiona
Ctrl + R
para iniciar
Vista previa
Después de ejecutar esta aplicación de escritorio Qt, se mostrará una nueva ventana en tu escritorio.
Si haces clic en el botón Sign In
, se mostrará una ventana de inicio de sesión en tu escritorio.
Después de un inicio de sesión exitoso, se mostrará una ventana de perfil de usuario en tu escritorio, mostrando tu información de usuario.
Puedes previsualizar todo el proceso en la siguiente imagen GIF.
Cómo Integrar
Abriendo la Ventana de Inicio de Sesión
// Load and display the login page of Casdoor
m_webview->page()->load(*m_signin_url);
m_webview->show();
Escuchando el Evento de Aplicación Abierta
// 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()));
Usando el Código de Autorización para Obtener la Información del Usuario
// Get the token and parse it with the JWT library
std::string token = m_casdoor->GetOAuthToken(code.toStdString());
auto decoded = m_casdoor->ParseJwtToken(token);