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
INCLUDEPATH
do OpenSSL emcasdoor-cpp-qt-example.pro
- Pressione
Ctrl + R
para 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);