OAuth2-todennus sovelluksessa Google-sisäänkirjautumisen avulla. Jatkuva pääsy Google-sovellusliittymiin
Tiesitkö, että käyttämällä Google voidaan tehdä verkkosivustollasi rekisteröinti sivustolla yhdellä napsautuksella? Jokainen, jolla on Google-tili, voi yksinkertaisesti napsauttaa painiketta ja skripti ladataan automaattisesti osoitteeseen sähköpostisovellus, nimi ja kuva.
Käyttämällä tätä kirjautumis-/rekisteröitymisvaihtoehtoa luot käyttökokemuksen. Tässä on joitain etuja:
Sinun ei tarvitse vahvistaa kirjautumislomaketta etkä luo lomaketta ollenkaan.
Ei tarvita "Unohdin salasana" -ominaisuutta;
Google on jo vahvistanut sähköpostiosoitteet, joten sinun ei tarvitse lähettää vahvistusta.
Tietysti tämä toimii vain, jos henkilöllä on Google-tili, joten on järkevää tehdä jotain tämän lokijärjestelmän lisäksi.
Sovelluksen asetukset
Ensimmäinen vaihe on sovelluksen luominen Google-sovellusliittymäkonsolin kautta. Noudata ohjeita vastaanottaaksesi lisäinformaatio. Kun prosessi on valmis, aseta tuloksena olevat avaimet tiedostoon setup.php.
Ajokoodi osoitteesta schema.sql(löydät sen latausarkistosta) PhpMyAdminissa tai muussa MySQL-hallintatyökalussa. Tämä luo glogin_users tietokannan taulukko, jota käytetään sovelluksesi käyttäjätilitietojen tallentamiseen. Kirjoita sen jälkeen tietokantayhteystietosi setup.php.
PHP
Idiorm-kirjastoa käytetään lukemiseen ja tietokantaan lisäämiseen. Luomme seuraavat PHP-sivut:
index.php – päätiedosto sovellukset;
setup.php– tietokantayhteys ja Googlen myöntämät avaimet;
Idiorm Library Folders, Google PHP Library.
Katsotaanpa ensimmäisen osan koodia index.php:
200?"200px":""+(this.scrollHeight+5)+"px");">vaatii "setup.php";
// Luoda uusi Google API asiakas
$asiakas = uusi apiClient();
//$client->setApplicationName("Tutorialzine");
// määritä se
$asiakas->setClientId($asiakastunnus);
$client->setClientSecret($client_secret);
$client->setDeveloperKey($api_key);
$client->setRedirectUri($redirect_url);
$client->setApprovalPrompt(false);
$oauth2 = uusi apiOauth2Service($client);
// Koodiparametri tarkoittaa, että tämä on
// uudelleenohjaus googlesta, jossa on väliaikainen koodi
if (isset($_GET["koodi"])) (
// Tällä menetelmällä saadaan todellinen arvo pääsytunnus Googlelta,
// jotta voimme pyytää käyttäjätietoja
$client->authenticate();
// Hanki käyttäjätiedot
$info = $oauth2->käyttäjätiedot->get();
// Etsi tämä henkilö tietokannasta
$henkilö = ORM::for_table("login_users")->where("sähköposti", $info["sähköposti"])->find_one();
Jos(!$henkilö)(
// Sellaista henkilöä ei löytynyt. Rekisteröidy!
$henkilö = ORM::for_table("glogin_users")->luo();
// Aseta tietokantatietoihin lisättävät ominaisuudet
$henkilö->sähköposti = $info["sähköposti"];
$henkilö->nimi = $info["nimi"];
If(isset($info["kuva"]))(
// Jos käyttäjä on asettanut julkisen google-tili kuva
$henkilö->valokuva = $info["kuva"];
}
muu(
// käytä muuten oletusarvoa
$henkilö->valokuva = "assets/img/default_avatar.jpg";
}
// lisää tietue tietokantaan
$henkilö->tallenna();
}
// Tallenna käyttäjätunnus istuntoon
$_SESSION["käyttäjätunnus"] = $henkilö->tunnus();
// Ohjaa perusesittelyn URL-osoitteeseen
header("Sijainti: $uudelleenohjaus_url");
poistua;
}
// käsitellä uloskirjautumista
if (isset($_GET["logout"])) (
unset($_SESSION["käyttäjätunnus"]);
}
$henkilö = tyhjä;
if(isset($_SESSION["käyttäjätunnus"]))(
// Hae henkilö tietokannasta
$henkilö = ORM::for_table("login_users")->find_one($_SESSION["käyttäjätunnus"]);
}
HTML
HTML-koodi sijaitsee sivun alaosassa index.php. Googlen kautta tehdyn valtuutuksen jälkeen voimme näyttää käyttäjätiedot täällä. Sivu itsessään on vakioasiakirja HTML5.
200?"200px":""+(this.scrollHeight+5)+"px");">
sisäänkirjautumislomake
Tervetuloa, nimi)?>
Olet rekisteröitynyt rekisteröity)?>
kirjautua ulos
createAuthUrl()?>" class="googleLoginButton">Kirjaudu sisään Googlella