O Facebook disponibiliza para qualquer desenvolvedor o acesso a uma rica API chamada Graph API (https://developers.facebook.com/docs/graph-api). Com ela, a partir de chamadas HTTP, é possível fazer consultas e ações no Facebook, como recuperar dados de usuários, fazer postagens na timeline do usuário, criar álbum e postar fotos entre várias outras tarefas que podem ser verificadas no link acima.
A Graph API utiliza o OAuth 2.0 como padrão (ou protocolo) de autorização.
OAuth 2.0 é uma especificação e padrão de autorização, que define um fluxo de autorização entre usuários/aplicações e clientes/aplicações servidoras. A especificação completa é encontrada neste link. O OAuth surgiu a partir da necessidade de padronizar o acesso de uma aplicação a outras aplicações (tanto da aplicação servidora quanto da aplicação cliente).
O OAuth sugere o seguinte modelo de fluxo:
O usuário está em uma aplicação (client) e essa aplicação deseja acessar um recurso protegido do usuário em outra aplicação.
O client faz uma chamada ao authorization server por meio de uma url passando 3 parâmetros (cliente id, cliente secret e redirect url) e o usuário é redirecionado para uma nova página.
O usuário fornece suas credenciais e a autorização para o cliente acessar seus recursos privados.
Após o cliente conceder autorização, o servidor de autenticação faz um redirect para a página passada como parâmetro (redirect url) passando de volta o parâmetro token.
De posse do token, o cliente pode solicitar o acesso ao recurso protegido, enviando o token na requisição.
Como fazer login de um usuário no Lumis Portal via Facebook?
Antes de executarmos a instalação deste módulo, é necessário informar ao Facebook que você deseja acessar a Graph API. Para isto, você deve criar uma aplicação no Facebook, acessando esta página. Após cadastrar, você será redirecionado para o Dashboard da sua aplicação:
Clique em Settings e em Add Platform e adicione um website:
O campo Site URL é para onde o servidor redireciona ao retornar o token. Como teste, você pode preencher o Site URL com o valor: {dominio}/facebook/login
Na minha aplicação local ficou da seguinte forma: http://localhost:8080/facebook/login
Feito isso, você já tem uma aplicação (client) cadastrada.
Configurando o Serviço de Login no Lumis.
Após Instalar o módulo é necessário instanciar as interfaces de Login e Logout do serviço (Facebook - Login) , em 2 canais distintos:
Um contendo a página e a interface de login, com permissão para todos os usuários.
E outro contendo a página home com permissão somente para usuários cadastrados. Utilizando a mesma instancia de serviço;
Associando o serviço de Login com o Aplicativo do Facebook
Para que a integração possa funcionar, é necessário associarmos o Serviço de Login do Lumis com o App criado no Facebook. Desta forma o Facebook informa ao usuário qual aplicativo está requisitando suas informações.
Com o botão direito do mouse na interface de Login ou Logout, selecionar a opção: "Configurar App Facebook".
Preencher os campos App Secret e App ID, referente ao seu aplicativo criado na página do Facebook.
Informações do usuário
O Facebook retorna um Json com todas as informações do usuário, desde que o seu aplicativo esteja publicado. Caso contrário o Facebook irá retornar somente o nome e o e-mail. Este módulo está tratando somente estes 2 campos, tendo em vista que o exemplo utilizado é de um App não publicado.
Configurando Páginas de Login e Página Home
Para testar o serviço de Login é necessário, definir a página Home e a página de Login do Portal, as instruções estão disponíveis através do link
Observação: Caso ocorra algum problema na integração e seja necessário acessar o portal como administrador basta digitar a URL http://{seu_dominio}/lumis/admin/safemode