Come aggiungere al nostro sito web il login basato su Facebook

Documenti analoghi
Close To Me manuale d'uso. 1. Introduzione.

Protezione dei documenti di Microsoft Office 2007 per utenti e aziende

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Procedura di Registrazione. Portale ClicLavoro

Guida alla registrazione nel nuovo sistema integrato Open Innovation e QuESTIO

Appunti della lezione di Database del 3/11/2016 (pomeriggio)

Area. Redatto da. Area Tecnica Sviluppo Siti e Applicativi. CSI ESOL GUIDA STUDENTE pag. 1

Guida Rapida per i Docenti dell ITIS Galilei

Guida all attivazione ipase

Come realizzare delle select concatenate con PHP e jquery?

Tutorial applicazione Web: Talented Europe per gli studenti

Portale Unico dei Servizi NoiPA. Guida all accesso

INSTALLAZIONE E CONFIGURAZIONE DEL SERVIZIO SAFEBOX

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Sommario. 1. Internet subito Le FAQ di Internet 13. Sommario vii

La stampa unione in Word 2007

Programma di navigazione internet: Internet Explorer

MANUALE MODULO WIDGET EVENT TRACKING LICENZA SaaS

XAMPP Installazione e configurazione

Corso sul PACCHETTO OFFICE. Modulo Access

Manuale d utilizzo. Indice:

COME CREARE UN BLOG DA ZERO LEZIONE 4 GUIDA RAPIDA BLOGGER

AWN. Manuale utente Web Mail. Rev AWN ArchiWorld Network. Pag. 1 / 49. v Manuale utente della Web Mail

Come creare un modulo per Joomla?

Come presentare una domanda di partecipazione a concorso

SISTEMI OPERATIVI, RETI, INTERNET

Guida servizio Wireless. Abilitazione proprio account per il wireless. Attivazione account per il personale

Finanziamenti on line -

Si accede alla piattaforma digitando nel browser l indirizzo: dopo di chè si apre la seguente pagina,

GUIDA RAPIDA ALLA MODIFICA DEL SITO

MANUALE PER L UTILIZZO DI SISSIWEB DA PARTE DEI DOCENTI

MANUALE DOCENTE. Guida rapida per iniziare subito con moodle. Guida rapida per moodle

Questo materiale è reperibile a questo indirizzo: PAS

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

MANUALE UTENTE UPLOADER JAVA

Servizio Conservazione No Problem

Guida in linea di Forcepoint Secure Messaging

La strutturazione dei database: Il modello relazionale (3/3)

Plantview Usernames

Manuale per l utente JustCARE

Come presentare una domanda di partecipazione a concorso

Android lezione 9 Le listview

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016

Come creare una . Scritto da Savy.uhf

Secure Recipient Guide

Manuale D Uso. Sistema di Registrazione FormaSicilia

per ulteriori informazioni consultare la guida disponibile on line all indirizzo:

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Manuale versione Mobile (Smartphone Tablet)

Stampa Guidata Serie in 19 passi. Creazione di una serie di documenti testualicon la tecnica Stampa Guidata Serie OpenOffice 2.3.0

Registrazione al Portale eprocurement ATAC e accesso all Albo Fornitori MANUALE FORNITORE

AREA RISERVATA SOCI. Aprile 2010 pag. 1 di 7

Sommario. Come utilizzare unito-guest v.01 2

PerElmec Mobile App. Guida sull utilizzo della App mobile del PerElmec. Autore: Uff. Sviluppo Web Rev. Dicembre Sviluppo Web e Mobile

Finanziamenti on line -

ATTIVAZIONE SERVIZIO NOTIFICHE SMS

APVE in Rete Modulo 8 Excel nozioni di base e esercitazioni su economia domestica

Introduzione per i nuovi utenti

MANUALE ISCRIZIONE E DOMANDA ON-LINE

Rete Sicura Plus. Guida d installazione ed attivazione del servizio

X-RiteColor Master Web Edition

Alpine Italia. Documento descrittivo delle procedure di registrazione

Specifica tecnica dei servizi di integrazione

SUPER. (Sistema Unico Posta Elettronica Regionale) Gestione Profilo Account

Vademecum nuovo sito CIPAG GEOMETRINRETE

ISTRUZIONI IN BREVE SULL USO DEL SITO JOOMLA FASE 1 : REGISTRARSI

D B M G Il linguaggio HTML

DURATA DEL CORSO: 15 LEZIONI (2ore) Tutti i martedì e venerdì dal 14 aprile al 12 giugno

DISPENSA ACCESS (OFFICE 2010 BETA)

Versione 1.0 Data 25/06/2014. Commenti Dichiarazione di copyright. Abstract Questo documento spiega come installare MOVIO in locale.

Rotary International Distretto 2040 Ge.Ro. - Gestionale Rotary

MANUALE DI CARICAMENTO DELLE EPIGRAFI

CAME Connect per sistemi Domotici FA00381-IT. Manuale di utilizzo

FISM di Venezia. Area Riservata Scuole del Veneto (ARiS) (agg. dati, agg. AdS)

GREENTRANET Linee guida per Volontari

Venere TS Certificati (Guida operativa)

Struttura di un applicazione Instant Developer

Definizione di classi. Walter Didimo

Elementi di gestione di dati con MS Access 2000

Manuale Counsellor. Manuale d'uso della piattaforma web per counsellor

SERVIZIO DI CONSULTAZIONE ELENCHI PEC

Accademia dei Georgofili/Società Editrice Fiorentina

ISTR7512r04 del aprile 2015

APP PER I DISPOSITIVI ANDROID

Portale AO Papardo GESTIONE CONTENUTI ALBO PRETORIO 23 GIUGNO 2017

DEMO.OVERPLACE.COM. Funzionalità dell ambiente Demo di Overplace 12/02/2014

Guida rapida. Indice: Creare un progetto Gestire e modificare un progetto Visualizzare i risultati di un progetto o una valutazione

WooCommerce: come creare un prodotto di tipo semplice sul tuo store

MANUALE RICHIESTE VISITE FISCALI

Guida al primo utilizzo di EasyArchiviazione INTERFACCIA INIZIALE

SOCIETÀ ENERGETICA LUCANA

Oxatis DataPlug. Per Windows XP, Windows Vista, Windows 7, Windows 8 e Windows 10. Manuale d uso della console Danea/EasyFatt

Versione 1.7. Manuale per Creatori Corsi. Parte I: Accesso e Creare Risorse

Manuale Operativo. Richieste di Ritiro Sottoscrittore. Versione: 1.3 Sottoscrittore

Come registrarsi per partecipare all.itcontest

Accedere alla propria area riservata dal sito del CAF. Inserire le proprie credenziali e premere ACCEDI

Ecateo. La Toscana in un palmo di mano. Luca Laudadio Carmine Benedetto

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Guida alla compilazione delle offerte richieste attraverso la piattaforma offerte: 27/07/2012

Installazione e configurazione DSFPA (Datasoftware Fattura Pubblica Amministrazione)

Transcript:

Come aggiungere al nostro sito web il login basato su Facebook Sicuramente avrete già incontrato, in moltissimi siti web, la possibilità di registrarsi e di accedere utilizzando Facebook. Questo è un modo molto veloce per l utente per accedere ad un sito web o a un servizio senza essere però costretto a inserire dati e aspettare una email di convalida. Dal momento che tutti o quasi siamo ormai sempre connessi su Facebook, si accede davvero con un click. Quello che faremo oggi sarà proprio implementare un sistema simile che potrete utilizzare sui vostri siti web per offrire questa possibilità ai vostri visitatori. Prerequisiti Per questo esempio avremo bisogno di uno spazio su un server remoto raggiungibile da Facebook, provvisto di un motore database tipo MySQL e di un web server in grado di eseguire codice PHP. Questo esempio non funzionerà in locale in quanto Facebook vi obbliga, quando realizzerete l app proxy, a specificare gli URL autorizzati a inviare delle richieste alle API del social network. Se proprio volete lavorare in locale, allora potete farlo utilizzando servizi come DynDNS. La seconda cosa di cui abbiamo bisogno è quella di realizzare come al solito un app su Facebook Developer che abbia come piattaforma il nostro sito web. Ho scritto qualche mese fa un articolo su come pubblicare automaticamente dei post su Facebook in cui parlavo anche di come creare un app su Facebook Developer. L articolo lo trovate a questo indirizzo. Dovrete aggiungere come piattaforma Sito web e come URL di redirect OAuth2 valido l URL completo della pagina login.php. Nell immagine qui sotto vi ho riportato i parametri necessari per configurare l autenticazione OAuth2: 1 / 6

Creazione del database Immagino che quasi tutti voi abbiate esperienza su come manipolare un database MySQL, utilizzando per esempio PhpMyAdmin. Il nostro esempio avrà bisogno solamente di una tabella per gli utenti che si può creare con la seguente query: Questa tabella è identica a tantissime altre tabelle di login utilizzate in qualsiasi sito web per gestire l autenticazione. Quello che andremo a salvare in aggiunta (anche se non è fondamentale) sarà l ID con cui l utente viene identificato su Facebook. Struttura dell esempio Cominciamo! Il nostro esempio si comporrà sostanzialmente di tre piccole pagine PHP: 2 / 6

index.php: sarà la nostra pagina ad accesso riservato, io ho semplicemente messo una frase dentro. login.php: sarà la pagina con il pulsante Login with Facebook e che invierà le richieste alle API del social network. do_login.php: sarà la pagina PHP che materialmente accederà al databse, registrando o caricando l utente e imposterà le variabili di sessione per completare la procedura di login. La pagina inziale Per prima cosa cominciamo dalla pagina più semplice di tutte, ovvero la home page del nostro esempio. Il codice è davvero molto breve: La prima riga carica la sessione corrente o la crea se non era ancora stata inizializzata. L istruzione successiva invece verifica se l utente ha effettuato l accesso oppure no, andando a controllare se esiste la variabile idutente nella sessione e, se questa esiste, se è un valore numerico valido diverso da zero. Se così fosse, allora l utente ha già eseguito la procedura e quindi potrà vedere la pagina, altrimenti deve essere reindirizzato alla pagina di login. La pagina di login Qui cominciamo a fare sul serio. Inizio per prima cosa dicendovi che ci sono due modi di effettuare il login con Facebook usando JavaScript: Il metodo che potremmo definire all-inclusive: Facebook vi offre già un pulsante preconfezionato e già cablato che vi risparmia qualche riga di codice Il metodo manuale, nel quale saremo noi a scrivere il codice necessario Io, nei miei progetti, preferisco utilizzare il secondo metodo per avere più controllo sul flusso di login. Inoltre, il numero di righe di codice da scrivere è comunque limitato perciò penso che sia la soluzione migliore. Le prime righe di codice fanno esattamente quello che abbiamo visto nella pagina iniziale, ma al contrario: se la sessione è valida e idutente è un numero valido, allora l utente non deve fare il login ma deve essere reindirizzato alla pagina principale. Dopo questo frammento di codice, seguono i tradizionali tag html e body, per poi arrivare al cuore della nostra pagina. La prima cosa è quella di inizializzare il Facebook Javascript SDK. 3 / 6

Gli unici parametri importanti da andare a impostare sono il solito appid e la versione delle API, che attualmente è la 2.7. Questo codice è assolutamente standard, non dovrete fare altro che replicarlo nei vostri progetti andando a cambiare i valori che vi ho appena citato. La seconda parte della pagina, invece, contiene le due funzioni che utilizzeremo per effettuare il login. Ecco il codice: Esaminiamo insieme la funzione loginfacebook, la quale invoca la funzione login della classe FB. Quest ultima apre un popup che può andare a finire in tre modi diversi. Se non avete effettuato l accesso a Facebook, allora vi sarà mostrata la finestra dove potrete inserire le vostre credenziali del social network e quindi effettuare il login. Se avete fatto il login ma è la prima volta che usate il sito web, allora Facebook giustamente vi chiederà di autorizzare l accesso ai vostri dati personali. Infine, se avevate già effettuato l accesso e autorizzato il sito web, tutto ciò che vedrete sarà un breve flash. Il popup si richiuderà automaticamente in una breve frazione di secondo. Come potete vedere, la funzione login accetta due parametri. Il secondo parametro è l insieme dei permessi che ci servono per ottenere i dati necessari, e sono i permessi che l utente poi andrà ad autorizzare. A noi serve public_profile, per il nome e cognome, e il permesso speciale email per recuperare l indirizzo di posta elettronica. Il primo parametro invece è una callback che sarà invocata alla chiusura del popup. La risposta è un oggetto JavaScript dal quale ci ricaviamo se l utente è connesso oppure no a Facebook e, nel caso di risposta affermativa, il token di accesso di breve periodo dell utente. Dentro alla callback invochiamo quindi un altra funzione di Facebook, la famosissima funzione api. Il primo parametro è l endpoint, ovvero la risorsa su cui vogliamo lavorare. Il secondo parametro è un array che contiene i campi che vogliamo ottenere in risposta alla chiamata. Il terzo parametro è una ulteriore callback, che verrà chiamata al termine della chiamata. Da questo in punto in poi sta tutto alla vostra fantasia e all architettura del vostro sistema. Io per esempio ho costruito un oggetto JavaScript che dopo passo alla pagina PHP lato server codificato in formato JSON e quindi Base64 nella querystring. 4 / 6

La pagina lato server Siamo giunti alla terza e ultima parte del nostro progetto, ovvero la pagina lato server. In questa fase verifichiamo se l utente è registrato oppure no: se non lo è, inseriamo una nuova riga all interno della tabella degli utenti nel database. Infine, vengono settate le variabili di sessione e si viene rimandati alla pagina principale del sito web. La prima cosa da fare è quella di verificare, come peraltro già fatto nella pagina di login, se l utente ha già effettuato l accesso e nel caso in cui così non fosse viene effettuato il redirect alla pagina principale.il passo successivo è quello di avviare una connessione con il database MySQL utilizzando MySQL PDO: Il passo successivo è quello di avviare una connessione con il database MySQL utilizzando MySQL PDO: Fate attenzione, come ho esplicitamente commentato, a fare l escape sempre dei campi che andranno all interno di una query per evitare attacchi di tipo SQL Injection. Il parametro true di json_decode invece serve semplicemente a decodificare l oggetto JSON non come un oggetto PHP ma come array associativo. A questo punto, se la query ha restituito zero righe, allora dobbiamo registrare l utente, altrimenti prendiamo la prima riga del risultato dell interrogazione e salviamo l ID dell utente: Abbiamo finito! Un possibile miglioramento Il passo successivo potrebbe essere quello di effettuare il login attraverso una chiamata AJAX, quindi nel codice della pagina lato server al posto di redirect e messaggi di errore, si dovrebbe invece stampare nella risposta un codice numerico che identifichi il risultato dell operazione di login. Poi, nella pagina chiamante si dovrebbe verificare il valore del codice e comportarsi in modi differenti in base all esito della procedura di login. Conclusione Siamo arrivati alla fine di questo articolo! Abbiamo realizzato un prototipo molto semplice di autenticazione ad un sito web utilizzando Facebook, che si presta ad essere espanso e migliorato in molti modi e che vi permetterà di implementare un meccanismo di autenticazione molto veloce all interno dei vostri siti web. Il codice dell articolo lo potete scaricare a questo indirizzo. 5 / 6

Powered by TCPDF (www.tcpdf.org) Your Inspiration Web A presto! 6 / 6