ASP.NET - Login con Facebook
Oggi è molto comodo demandare a provider di autenticazione esterni l'autenticazione (o login).
Il provider più diffuso, nonché quello che contiene il maggior numero di utenti già registrati è Facebook.
Vediamo come integrare in un sito web l'autenticazione di Facebook.
Cosa fare su Facebook
- Registrare su Facebook una nuova applicazione, collegandosi al link https://developers.facebook.com/apps/
- Selezionare il bottone "Aggiungi una nuova applicazione", e quindi selezionare l'opzione SITO WEB
- Dare un nome univoco all'applicazione (suggerisco di chiamarla come il sito per il quale si sta configurando il servizio)
- Compilate le informazioni richieste allo step successivo che sono: la vostra email e una categoria per l'applicazione
- Una volta inserite queste info potete selezionare lo SKIP QUICK START e andare direttamente alla pagina delle impostazioni
- Prendere nota di: ID APPLICAZIONE (Application ID), e CHIAVE SEGRETA (Secret key)
- Nel campo DOMINI APPLICAZIONE inserite il dominio del vostro sito (ad esempio www.polipone.com)
- Selezionate il pulsante AGGIUNGI PIATTAFORMA e scegliete SITO WEB
- Nel campo URL DEL SITO inserite l'url completo del vostro sito, seguito da "'" (ad esempio http://www.polipone.com/')
Cosa fare su Visual Studio
- Inserire nel web.config due nuovi app setting, che contengo rispettivamente l'ID APPLICAZIONE e la CHIAVE SEGRETA, ottenuti registrando l'applicazione su Facebook
<appsettings>
<add key="FacebookAppId" value="xxxxxxxxxxxx" />
<add key="FacebookAppSecret" value="xxxxxxxxxxxxxxxxxxxxxxxxxx" />
</appsettings>
- Creare la seguente classe CFacebook nel progetto
- Scegliete ora la pagina in cui volete inserire il link che chiamerete, ad esempio, LOGIN CON FACEBOOK
- Nel code behind di questa pagina, all'evento Page_Load, valorizzare l'url col metodo getUrlLogin della classe CFacebook.
hlFacebookLogin.NavigateUrl = CFacebook.getUrlLogin("/pages/loginFacebook.aspx");
- Il metodo precedente ha un parametro che deve essere valorizzato col il path assoluto della pagina che poi verrà richiamata da Facebook dopo il login, e alla quale Facebook passerà i dati dell'utente, che serviranno a noi per gestire la nostra logica applicativa.
- A questo punto abbiamo una pagina che contiene il link "LOGIN CON FACEBOOK".
- Quando l'utente lo seleziona viene reindirizzato a Facebook.
- Se è la prima volta che accede dal nostro sito, Facebook chiederà il permesso all'utente di usare la nostra applicazione di Facebook.
- Quindi, dopo che l'utente avrà accettato, Facebook reindirizzerà il browser alla pagina che abbiamo specificato prima (nel nostro esempio loginFacebook.aspx)
- Pagina loginFacebook.aspx
- Questa pagina avrà il seguente codice nell'evento Page_Load: