Pular para o conteúdo principal

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:

NomeDescriçãoArquivo
endpointSeu host/domínio do servidor Casdoormainwindow.h
client_idO ID do Cliente da sua aplicação Casdoormainwindow.h
client_secretO Segredo do Cliente da sua aplicação Casdoormainwindow.h
certificateA chave pública para o certificado da aplicação Casdoormainwindow.h
org_nameO nome da sua organização Casdoormainwindow.h
app_nameO nome da sua aplicação Casdoormainwindow.h
redirect_urlO caminho da URL de callback para a sua aplicação Casdoor, será http://localhost:8080/callback se não for fornecidomainwindow.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

  1. Abrir casdoor-cpp-qt-example.pro
  2. Definir o INCLUDEPATH do OpenSSL em casdoor-cpp-qt-example.pro
  3. Pressione Ctrl + R para iniciar

Pré-visualização

Após executar este aplicativo de desktop Qt, uma nova janela será exibida em seu desktop.

índice

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

login

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.

perfil do usuário

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

gif de pré-visualização

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);