Fala galera!

Continuando com o assunto do post anterior “Adicionando autenticação (OAuth)“, fiz este artigo explicando como adicionar o Facebook como Login provider em nossa Web Api.

Existem muitas maneiras para autenticar com um provider externo. Dá para fazer isso criando um controller e fazer a autenticação na unha. Dá pra fazer um usando o próprio Provider para Facebook que do Owin (Microsoft.Owin.Security.Facebook).

Testando alguns, eu preferi usar o CustomGrant do próprio OAuthProvider, foi bem mais fácil e simples de configurar.

1) Acesse https://developers.facebook.com</a> e crie um aplicativo. Guarde o AppId e AppSecret para usarmos mais tarde.

Você também vai precisar de um AccessToken para testar o aplicativo. Para obter um acesse: https://developers.facebook.com/tools/accesstoken/</a>.

2) Vamos começar do ponto em que o projeto já está com autenticação OAuth funcionando. Para isso eu baixei o código fonte do artigo anterior: https://github.com/leonardohof/WebApiTest</a>

  1. Vamos adicionar o AppId e AppSecret do Facebook no Startup.Auth, deixando a classe assim:
  1. Agora vamos alterar o AplicationOAuthProvider para aceitar o nosso novo grant. Adicione o código dentro da classe:
  1. Agora vamos executar e ver o funcionamento. Execute o projeto e mude o endereço para “http://localhost:xxxx/api/me”, você verá uma mensagem informando que a autorização foi negada:

<a href="https://i0.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/08/Screenshot_15.png” data-rel="lightbox-image-0” data-rl_title=”” data-rl_caption=”” title="“>

 

  1. Para autorizar vamos enviar uma solicitação para o /Token, para isso vou utilizar o aplicativo “Postman”, disponível para instalar no chrome:

https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop</a>

  1. Crie uma requisição post para “http://localhost:xxxx/Token”

Adicione o Header:

Adicione body(raw):

*Nessa parte que diferencia do OAuth padrão.

  1. Agora com um Token em mãos, conseguiremos acessar o “http://localhost:xxx/api/me”. Crie uma requisição para este endereço, do tipo GET e adicione o Header:

Pronto, nossa autenticação já está funcionando via OAuth e via Facebook Token.

Espero ter ajudado, qualquer dúvida estou a disposição!

Código fonte:

https://github.com/leonardohof/WebApiTestFacebook</a>