Criando serviço de autenticação com o Facebook



Esta é a razão de escrever este post. Logar hoje nos portais da vida tem sido uma tarefa meio chata, pois, a dificuldade de encontrarmos vigor e força para realizar um Cadastro é uma difícil tarefa.
Portando, eu venho mostrar como faremos para criar um serviço de login para aplicações "Web".
Assim mostrarei como faremos passo a passo. 
1. Criar um App no Facebook.
2. Criar um Controller.
3. Criar um Manager.
4. Criar um Model.
1. Criar um App no facebook.

Esta é a tarefa mais chatinha, pois, nos ultimos dias temos visto que o facebook está colocando limitações ao desenvolvedores.
De início, entenda que nós utilizaremos o Client OAuth 2.0.
Hoje, o OAuth é usado pelo Google, Facebook, Twitter, DropBox, Salesforce, entre outros.
Como é o fluxo de autorização?
Antes de conhecer o fluxo, é importante conhecer os papéis envolvidos:
Resource Server – é a aplicação que possui os recursos protegidos pelo OAuth que podem ser acessados via Rest
Resource owner (user) – é dono dos recursos protegidos. No Facebook: dados cadastrais, amigos, fotos, etc.
Client – é a aplicação cliente, que faz requisições à API protegida. Pode-se dizer que é a aplicação utilizada pelo user.
Authorization Server – Responsável por dar acesso ao recursos protegidos por meio de um token que é enviado para o client quando há autorização do user.

O OAuth sugere dois modelos de fluxo:
No primeiro, o client conhece as credencias do usuário e realiza o fluxo para obtenção do token. Este modelo é mais recomendado para redes fechadas (entre aplicações corporativas, por exemplo).
No segundo, o cliente não conhece as credenciais do cliente, o usuário faz login em outra página e segue o fluxo para obtenção do token. Neste caso, melhor para ser usado em ambientes abertos.
Segue um breve resumo do fluxo, apenas do segundo caso:
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.
Portanto, depois de compreender o fluxo de trabalho, vamos ao desenvolvimento. =D
Antes de tudo,

Após o cadastro você será redirecionado para o seu Dashboard.


Feito isso, você já tem uma aplicação (client) cadastrada.
Agora vamos para o código Java.
2. Criando o Controller
A primeira classe é um controller, que faz o redirect para a página de permissão do Facebook e outro método para ser chamado quando o facebook fizer o redirect na volta para nosso client.

3. Criando um Manager
A classe LoginFacebook possui tudo o que é necessário para obter as informações do usuário.
As variáveis clientid , clientsecret, e redirect_uri, devem ser preenchidas com o valor dos seguintes campos da tela Settings acima:
client_id = App Id
client_secret = App secret
redirect_uri = Site URL **

4. Criando o Model

Assim, de posse todas as informações do usuário, você pode realizar o login (jogar esses dados na sessão, por exemplo) e/ou cadastrar este usuário na sua aplicação.


Comentários

Postagens mais visitadas deste blog

Como criar uma branch e salvá-la no github?

Criando serviço de login com Appery.io