OAuth2-authenticatie in de applicatie via Google Sign-In. Continue toegang tot Google API's
Wist je dat het gebruik van Google, kan op uw website worden gedaan registratie op de site in één klik? Iedereen met een Google-account kan eenvoudig op de knop klikken en het script wordt automatisch geüpload naar e-mailtoepassing, naam en foto.
Door gebruik te maken van deze login/registratie mogelijkheid creëer je een gebruiksvriendelijke ervaring. Hier zijn enkele van de voordelen:
U hoeft het inlogformulier niet te valideren of helemaal geen formulier te maken;
De functie "Wachtwoord vergeten" is niet nodig;
De e-mailadressen zijn al geverifieerd door Google, dus je hoeft geen bevestiging te sturen.
Dit werkt natuurlijk alleen als de persoon heeft Google account het is dus logisch om iets naast dit registratiesysteem te doen.
Applicatie instellen
De eerste stap is om de applicatie te maken via de Google API Console. Volg de instructies om Extra informatie... Plaats na het voltooien van het proces de ontvangen sleutels in setup.php.
Actiecode van schema.sql(u kunt het vinden in het downloadarchief) in PhpMyAdmin of een ander MySQL-beheerprogramma. Dit zal creëren glogin_users een tabel in de database die zal worden gebruikt om informatie over de gebruikersaccounts van uw toepassing op te slaan. Schrijf daarna uw databaseverbindingsgegevens naar: setup.php.
PHP
De Idiorm-bibliotheek wordt gebruikt om de database te lezen en in te voegen. We zullen de volgende PHP-pagina's maken:
index.php – hoofdbestand toepassingen;
setup.php- verbinding met de database en sleutels uitgegeven door Google;
Idiorm-bibliotheekmappen, Google PHP-bibliotheek.
Laten we eens kijken naar de code voor het eerste deel index.php:
200? "200px": "" + (this.scrollHeight + 5) + "px"); "> vereisen" setup.php ";
// Maak een nieuwe Google-API cliënt
$ cliënt = nieuwe apiClient ();
// $ client-> setApplicationName ("Tutorialzine");
// Configureer het
$ client-> setClientId ($ client_id);
$ client-> setClientSecret ($ client_secret);
$ client-> setDeveloperKey ($ api_key);
$ client-> setRedirectUri ($ redirect_url);
$ client-> setApprovalPrompt (false);
$ oauth2 = nieuwe apiOauth2Service ($ cliënt);
// De codeparameter geeft aan dat dit is
// een omleiding van google, met een tijdelijke code
if (isset ($ _ GET ["code"])) (
// Deze methode zal de actuall . verkrijgen toegangstoken van Google,
// zodat we gebruikersinformatie kunnen opvragen
$ cliënt-> authenticeren ();
// Pak de gebruikersgegevens
$ info = $ oauth2-> gebruikersinfo-> get ();
// Vind deze persoon in de database
$ person = ORM :: for_table ("glogin_users") -> waar ("e-mail", $ info ["e-mail"]) -> find_one ();
Als (! $ Persoon) (
// Zo'n persoon is niet gevonden. Register!
$ persoon = ORM :: for_table ("glogin_users") -> maken ();
// Stel de eigenschappen in die in de db . moeten worden ingevoegd
$ persoon-> e-mail = $ info ["e-mail"];
$ persoon-> naam = $ info ["naam"];
If (isset ($ info ["foto"])) (
// Als de gebruiker een openbare heeft ingesteld Google account foto
$ persoon-> foto = $ info ["foto"];
}
anders (
// gebruik anders de standaard
$ person-> photo = "assets / img / default_avatar.jpg";
}
// voeg het record in de database in
$ persoon-> opslaan ();
}
// Sla de gebruikers-ID op in de sessie
$ _SESSION ["user_id"] = $ persoon-> id ();
// Redirect naar de basis demo-URL
header ("Locatie: $ redirect_url");
Uitgang;
}
// Uitloggen afhandelen
if (isset ($ _ GET ["uitloggen"])) (
uitgeschakeld ($ _ SESSION ["user_id"]);
}
$ persoon = nul;
if (isset ($ _ SESSION ["user_id"])) (
// Haal de persoon uit de database
$ person = ORM :: for_table ("glogin_users") -> find_one ($ _ SESSION ["user_id"]);
}
HTML
HTML-code neemt de onderste helft van de pagina in beslag index.php... Na het inloggen via Google kunnen we hier gebruikersgegevens weergeven. De pagina zelf is standaard document HTML5.
200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
login formulier
Welkom, naam)?>
Je hebt je geregistreerd geregistreerd)?>
Uitloggen
createAuthUrl ()?> "class =" googleLoginButton "> Aanmelden met Google