NodeJs – Autenticação com Facebook

Fala galera! Tudo tranquilo?

Hoje vou falar mais um pouco sobre NodeJs, só que agora é sobre autenticação com serviços externos. No post vou mostrar como vincular a sua aplicação com o facebook, mas também podemos conectar com contas Microsoft, Google, Twitter, dentre outras.

Para começar, temos que fazer uma conta de desenvolvedor no facebook, e posteriormente a aplicação que vai ser vinculada à nossa, que pode ser feita através do link a seguir: https://developers.facebook.com/apps; não vou mostrar como fazer isso neste post, porque eu mostro como fazer passo a passo neste post AQUI.

Com a aplicação feita, vamos para o código! Para fazer a autenticação utilizaremos um pacote chamado “passport“, que tem a finalidade de autenticar as solicitações em conjunto com plugins, chamados de “Estratégias”. O passaport trabalha apenas para autenticar, não tem nenhum esquema de banco de dados específico para fazer isso, o que maximiza a flexibilidade.

Em conjunto com ele também vamos usar o “passport-facebook” que é uma das “Estratégias” disponíveis para utilizarmos, ele trabalha com OAuth 2.0 e é ele que faz a conecção com o Facebook.

Você pode instalar os pacotes mencionados com os comandos:

npm install passport
npm install passport-facebook

A configuração do passport é bastante flexível; para conectar com serviços externos, nós precisamos armazenar as credenciais em algum lugar para utiliza-las posteriormente, para isso ele disponibiliza os métodos “serializeUser” e “deserializeUser” onde podemos buscar essas informações onde quisermos, depois disso colocamos as credenciais da aplicação, e as configurações estão prontas, veja:
Configuração do Passaport

Com isso já configurado, só falta ajustarmos as nossas rotas, para logar e deslogar, também coloquei uma para mostrar o perfil do usuário, como vocês podem ver a seguir:
Rotas

E por fim, vou mostrar-lhes o método que verifica se o usuário está logado, bastante simples:
Autenticação

Tranquilão né?! Com isso já estamos fazendo autenticação de usuários com o facebook! 😀
Só pra acrescentar, estou usando ejs para renderizar minhas páginas e bootstrap pra deixar agradável.

Os exemplos de código estão disponíveis no GitHub: https://github.com/vmussak/nodejsFacebookAuth
Também deixei um exemplo funcionando online pra vocês, está disponível aqui: http://nodejsfbautenticacao.azurewebsites.net/

Por hoje é só, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀

Referências:
https://www.npmjs.com/package/passport
https://github.com/jaredhanson/passport-facebook

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s