Cum se creează un formular de înregistrare php. Autentificare și formular de înregistrare cu HTML5 și CSS3

Știați că puteți utiliza serviciul Google, crea formular de înregistrare pentru site-ul dvs. cu un singur clic? Toți cei care au cont Google, poate face clic pe butonul și se poate conecta imediat la aplicația dvs., cu adresa de e-mail, numele și fotografia lui.

Acest serviciu se numește autentificare federată și este construit pe protocolul OAuth2. Acest proces dificil, care implică partajarea datelor între serverul dvs. și Google, dar vom lăsa toată această muncă în seama bibliotecii PHP a Google, care se va ocupa de aproape totul la nivelul serverului.

Folosind acest serviciu, puteți simplifica foarte mult procesul de autorizare/înregistrare pentru dumneavoastră și utilizatorii dumneavoastră. Iată câteva dintre beneficii:

  • Nu este necesară crearea și verificarea formularelor de înregistrare și autorizare;
  • Nu este nevoie de funcția de recuperare a parolei uitate;
  • Autorizare/înregistrare foarte simplificată – veți primi e-mail persoană, nume și fotografie cu un singur clic;
  • Adresa a fost deja verificată de Google, așa că nu trebuie să trimiteți un mesaj pentru verificare.
  • Securitate serioasă de la Google.

Desigur, acest lucru va funcționa numai dacă persoana are un cont Google, așa că este logic să utilizați acest serviciu ca un plus sistem existentînregistrare. Asadar, haideti sa începem!

Instalare

Primul pas este să creați o nouă aplicație prin Consola API Google. Urmați instrucțiunile pentru a primi Informații suplimentare. După finalizarea procesului, copiați cheile primite în fișierul setup.php.

Rulați codul din schema.sql ( îl puteți găsi în arhivă) în PhpMyAdmin sau un instrument similar. Acesta va crea un tabel glogin_users în baza de date care va fi folosit pentru a stoca informații despre conturile de utilizator ale aplicației dvs. După aceea, scrieți detaliile conexiunii la baza de date în setup.php.

PHP

Creăm un formular de conectare utilizând autentificarea federată de la Google. Aceasta înseamnă că vizitatorii site-ului dvs. dau clic pe un link către pagina Google, unde acordă aplicației acces la contul lor și apoi vor fi redirecționați înapoi. Primești apoi un token de acces pe care îl poți folosi pentru a solicita informații despre ei. Iată o descriere simplificată a procesului de autorizare:

  • Când un utilizator dă clic pe butonul „Conectează-te cu Google” din demonstrația noastră, este direcționat către pagina de conectare a Google, unde vede ce permisiuni solicită aplicația noastră.
  • După ce se permite accesul la această aplicație, aceștia vor fi redirecționați înapoi către site, cu un parametru special cod transmis în adresa URL. Aplicația noastră va folosi acest cod pentru a obține un token de acces;
  • Folosind un token, aplicația solicită informații despre utilizator, care sunt stocate în baza de date.

Pentru a citi și a insera în baza de date, folosesc micuța bibliotecă Idiorm, pe care o puteți găsi în folderul bibliotecii.

Codul nostru PHP este organizat după cum urmează:

  • index.php este fișierul principal al aplicației;
  • setup.php - acest fișier conține informații de conectare la baza de date și chei primite de la Consola API Google;
  • Dosarul Bibliotecă - conține biblioteca Idiorm, PHP Biblioteci Google, și o clasă pentru includerea unei mărci temporale relative.

Să aruncăm o privire la codul de la începutul index.php:

necesită „setup.php”; // Creaza un nou API-ul Google client
$client = new apiClient() ;
//$client->setApplicationName("Tutorialzine"); // Configurați-l
$client -> setClientId ($client_id) ;
$client -> setClientSecret ($client_secret) ;
$client -> setDeveloperKey ($api_key) ;
$client -> setRedirectUri ($redirect_url) ;
$client -> setApprovalPrompt ( false );
$oauth2 = new apiOauth2Service($client) ; // Parametrul de cod înseamnă că aceasta este
// o redirecționare de la google, care poartă un cod temporar
if (isset ($_GET [ "cod" ] ) ) ( // Această metodă va obține jetonul de acces real de la Google,
// astfel încât să putem solicita informații despre utilizator
$client -> autentificare () ; // Obține datele utilizatorului
$info = $oauth2 -> userinfo -> get () ; // Găsiți această persoană în baza de date
$person = ORM::for_table ("glogin_users") -> unde ("email" , $info [ "email" ] ) -> find_one () ; dacă (! $persoană ) (
// Nu a fost găsită o astfel de persoană. Inregistreaza-te! $persoana = ORM::for_table("glogin_users")->create(); // Setați proprietățile care urmează să fie inserate în db
$persoana -> email = $info [ "email" ] ;
$persoana -> nume = $info [ "nume" ] ;

if (isset ($info [ "imagine" ] ) ) (
// Dacă utilizatorul a setat o fotografie publică a unui cont Google
$persoana -> fotografie = $info [ "poza" ] ;
}
altceva(
//în caz contrar, utilizați valoarea implicită
$persoană -> fotografie = "assets/img/default_avatar.jpg" ;
) // introduceți înregistrarea în baza de date
$persoana -> salvare () ;
) // Salvați id-ul utilizatorului în sesiune
$_SESSION [ "user_id" ] = $persoana -> id () ; // Redirecționează la adresa URL a demonstrației de bază
header("Locație: $redirect_url");
Ieșire ;
) //Gestionați deconectarea
dacă (isset ($_GET [ "deconectare" ] ) ) (
dezactivat ($_SESSION [ "user_id" ] );
) $persoana = null ;
if (isset ($_SESSION [ "user_id" ] ) ) (
// Preluați persoana din baza de date
$persoana = ORM::for_table("glogin_users") -> find_one($_SESSION["user_id"]) ;
}

Ce se întâmplă aici este că verificăm codul în $_ GET parametrii. După cum am menționat mai sus, această setare este setată de Google atunci când utilizatorul este redirecționat înapoi după ce a permis accesul la aplicație. Apoi solicităm informații despre utilizator și le înregistrăm în baza de date. ID-ul utilizatorului (valoarea ID-ului din baza de date) este scris în sesiune. Este salvat între cereri și este folosit ca un semnalizare că utilizatorul a fost autentificat

Dacă doriți să aflați mai multe despre OAuth, citiți informațiile relevante de la Google despre acest subiect. Acolo puteți vedea și un tabel cu câmpurile pe care le returnează metoda get().

Spre final, definim variabila $person. Conține un obiect care este returnat de biblioteca Idiorm, cu proprietăți pentru fiecare coloană de tabel glogin_users. Puteți vedea cum este utilizat acest obiect în secțiunea următoare.

HTML

Codul HTML pentru exemplul nostru se află în partea de jos a index.php. Prin urmare, avem acces la obiectul $person, care este util atunci când afișăm numele și fotografia utilizatorului. Pagina în sine este document standard HTML5:





Formular de conectare bazat pe Google




Formular de autentificare