Aplicativo de Desktop Qt
Um exemplo de aplicativo de desktop Qt para o Casdoor.
Como Executar o Exemplo
Pré-requisitos
Inicialização
Você precisa inicializar 7 parâmetros de string:
| Nome | Descrição | Arquivo |
|---|---|---|
| endpoint | Seu host/domínio do servidor Casdoor | mainwindow.h |
| client_id | O ID do Cliente da sua aplicação Casdoor | mainwindow.h |
| client_secret | O Segredo do Cliente da sua aplicação Casdoor | mainwindow.h |
| certificate | A chave pública para o certificado da aplicação Casdoor | mainwindow.h |
| org_name | O nome da sua organização Casdoor | mainwindow.h |
| app_name | O nome da sua aplicação Casdoor | mainwindow.h |
| redirect_url | O caminho da URL de callback para a sua aplicação Casdoor, será http://localhost:8080/callback se não for fornecido | mainwindow.h |
Se você não definir o parâmetro endpoint, este projeto usará http://localhost:8000 como o servidor Casdoor padrão.
Executando o Aplicativo
Usando o Qt Creator
- Abrir
casdoor-cpp-qt-example.pro - Definir o
INCLUDEPATHdo OpenSSL emcasdoor-cpp-qt-example.pro - Pressione
Ctrl + Rpara iniciar
Pré-visualização
Após executar este aplicativo de desktop Qt, uma nova janela será exibida em seu desktop.

Se você clicar no botão Sign In, uma janela de login será exibida em seu desktop.

Após um login bem-sucedido, uma janela de perfil do usuário será exibida em seu desktop, mostrando suas informações de usuário.

Você pode pré-visualizar todo o processo na seguinte imagem GIF.

Como Integrar
Abrindo a Janela de Login
// Load and display the login page of Casdoor
m_webview->page()->load(*m_signin_url);
m_webview->show();
Escutando o Evento de Abertura do Aplicativo
// 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 o Código de Autenticação para Obter as Informações do Usuário
// Get the token and parse it with the JWT library
std::string token = m_casdoor->GetOAuthToken(code.toStdString());
auto decoded = m_casdoor->ParseJwtToken(token);