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.
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.
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.
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:
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 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.
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.
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
Postar um comentário