OAuth2-todennus sovelluksessa Google-sisäänkirjautumisen kautta. Jatkuva pääsy Google-sovellusliittymiin

8. heinäkuuta 2014 klo 00.53

Valtuutus Googlen kautta Androidissa ja tunnuksen vahvistus palvelimella

  • Kehitys Androidille
  • Palautus tila

Äskettäin halusin luoda henkilökohtaisen projektin Androidille, ja pääkysymys oli: kuinka tunnistaa käyttäjä yksilöllisesti pakottamalla hänet tekemään mahdollisimman vähän kehon liikkeitä? Tottakai se on google-tili... Yritin kokeilla monia esimerkkejä verkossa - API kuitenkin päivitettiin useita kertoja sen olemassaolon aikana, monet menetelmät eivät toimineet, Google+:ssa tätä koskevia kysymyksiäni joko ympäristö ei havainnut millään tavalla tai ne olivat kuin "minä koskaan tehnyt tätä."
Tässä artikkelissa yritän kuvata mahdollisimman yksinkertaisesti aloittelijoille (kuten minä) menetelmääni kirjautua Googleen Androidilla, hankkia tunnus ja tarkistaa tämä merkki palvelimelta.

Pientä valmistautumista

Ensinnäkin sinun on oltava asennettuna Google play Palvelut SDK:ssa. Asennuksen jälkeen voit tuoda ne kaikki tarvittavat kirjastot... Artikkeli on kirjoitettu Android Studiota ajatellen - se kertoo, mitä tuodaan.
Sinun olisi pitänyt luoda aktiviteetti painikkeella.
Voit luoda standardin, jotta se olisi tutumpi käyttäjälle google-painiketta+ Sisäänkirjautuminen
Se näyttää tältä:

Lisää vain asetteluun:

Lisää toiminto painikkeeseen

Kirjoitamme toiminnassamme:
Näytä btn = (Näytä) findViewById (R.id.sign_in_button); btn.setOnClickListener (uusi View.OnClickListener () (@Override public void onClick (Näytä näkymä) (Intent intent = AccountPicker.newChooseAccountIntent (null, null, new String ("com.google"), false, null, null, null, null); startActivityForResult (intent, 123);)));
Oikeastaan ​​määritetään painikkeelle toiminto - tilin valintatarkoituksen kutsuminen. Jos työskentelet Android Studiossa, se kertoo, mitkä kirjastot sinun on tuotava, joten en kuvaile tätä tässä yksityiskohtaisesti.
startActivityForResult (intent, 123); - asettaa koodin, jolla palautus tapahtuu. 123 on palautuskoodi, se voi olla mikä tahansa. Tämä on tarpeen, kun teet useita aikomuksia ja sinun on käsiteltävä niitä eri tavalla.

Vaaditut pääsyalueet

Ilmoita nämä muuttujat luokassa. Nämä ovat pääsyalueet, joita tarvitsemme. Ensimmäinen on kirjoitettu googlessa: "Antaa sinun määrittää autentikoidun käyttäjän. Tätä varten sinun on määritettävä minut Google+ -käyttäjätunnuksesi sijaan, kun soitat API:lle. »Toinen lupa, jota tarvitsemme saadaksemme käyttäjän henkilötiedot (nimi, sukunimi, G + -sivun osoite, avatar), ja viimeinen lupa sähköpostin vastaanottaminen... Pidin tätä tärkeänä, koska se on täysin muuttumaton tunniste tietokantaan kirjoitettaessa.
yksityinen lopullinen staattinen String G_PLUS_SCOPE = "oauth2: https: //www.googleapis.com/auth/plus.me"; yksityinen lopullinen staattinen merkkijono USERINFO_SCOPE = "https://www.googleapis.com/auth/userinfo.profile"; yksityinen lopullinen staattinen merkkijono EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email"; yksityinen lopullinen staattinen merkkijono SCOPES = G_PLUS_SCOPE + "" + USERINFO_SCOPE + "" + EMAIL_SCOPE;

Hakemuksemme rekisteröinti.

Aluksi unohdin tämän kohdan - korjaan itseäni.
Meidän on mentävä osoitteeseen code.google.com/apis/console luodaksesi projektin siellä, siirryttävä kohtaan Credentials ja luotava uusi asiakastunnus OAuthille valitsemalla Asennettu sovellus -> Android. Siellä meidän on syötettävä pakettimme nimi ja avaimemme SHA1-summa.
Tämän avulla sain itse asiassa paljon ongelmia ratkaistua melko näppärällä tavalla.
Löytyi debug.keystore %:sta USERPROFILE% \. Android \ debug.keystore sijoitettiin projektin kansioon ja lisättiin tiedostoon build.grandle:

SigningConfigs (debug (storeFile-tiedosto ("debug.keystore")) myConfig (storeFile-tiedosto ("debug.keystore") storePassword "android" keyAlias>"androiddebugkey" keyPassword "android"))
Sen jälkeen meidän on suoritettava komento:
keytool -exportcert -alias androiddebugkey -keystore ~/ .android / debug.keystore -v -list
Itse näppäintyökalu löytyy SDK:sta. Kopioi tulosteesta SHA1 haluttuun kenttään.
Ymmärtääkseni menetelmä on väliaikainen ja tarkoitettu normaalia työtä sinun on luotava normaali avain. Mutta testaukseen se riittää.

Tokenin vastaanottokoodi

suojattu void onActivityResult (lopullinen int requestCode, lopullinen int resultCode, lopullinen Intent-data) (if (requestCode == 123 && resultCode == RESULT_OK) (lopullinen merkkijono accountName = data.getStringExtra (AccountManager.KEY_ACCOUNT_NAME); AsyncTask getToken = uusi AsyncTask () (@Override suojattu merkkijono doInBackground (Void ... params) (kokeile (String token = GoogleAuthUtil.getToken (AcrivityName.this, accountName, SCOPES); paluutunnus;) kiinni (UserRecoverableAuthException userAuthEx) (startActivityForResult (userIntenuthEx (.get). ), 123);) catch (IOException ioEx) (Log.d (TAG, "IOException");) catch (GoogleAuthException fatalAuthEx) (Log.d (TAG, "Fatal Authorization Exception" + fatalAuthEx.getLocalizedMessage ());) paluutunnus;) @Override suojattu void onPostExecute (merkkijono token) (reg (token);)); getToken.execute (null, null, null); ))
Missä 123 on aiemmin määrittämäsi koodi, missä AcrivityName on toimintosi nimi. Karkeasti sanottuna syötämme tunnuksen hankkimiseen tarvittavat toiminnot tarvittavilla käyttöoikeuksilla ja tilin nimellä. Ja muista - tämä kaikki tapahtuu sisällä tausta, jonka jälkeen tuloksena oleva merkki välitetään kirjoittamaani reg-funktioon. Se lähettää jo tunnuksen ja kaikki tarvittavat tiedot palvelimelle.
Koska kehitän äskettäin, poikkeuksia lukuun ottamatta, ongelma on toistaiseksi, jos on ehdotus - kirjoita henkilökohtaisesti tai kommentteihin.

Tarkistamme tunnuksen palvelimella. (PHP)

Haluan kiinnittää huomionne siihen, että saamamme tunnus on Online-tyyppinen. Ja se kestää vain 10 minuuttia. Jos haluat saada offline-tunnuksen (jos haluat työskennellä sen kanssa palvelimelta pidempään), katso tämä ohje

Hei rakkaat blogisivuston lukijat! Google-tilin luominen antaa sinulle mahdollisuuden nauttia kaikista tämän hakujätin monista ominaisuuksista. Tämä on erittäin kätevää tavallisille käyttäjille, joista monet käyttävät omiin tarpeisiinsa esimerkiksi tämän hakujätin sähköpostipalvelinta. En edes puhu webmastereista tai Internet-yrittäjistä, joille saatavuus tili Googlessa on elintärkeää.

Googlen tilijärjestelmä on rakennettu siten, että rekisteröitymisen jälkeen pääset kaikkiin palveluihin kerralla ja ostat samalla GMailista postilaatikon, jota itse käytän ja jota pidän optimaalisimpana ja luotettavimpana kaikissa järkeä. Lisäksi Google ei säätele millään tavalla luotavien tilien määrää.

Eli jos sinulla on yksi tili, voit milloin tahansa lisätä siihen useita lisää rekisteröimällä joka kerta uuden sähköpostin. Muuten, täsmälleen sama mekanismi toimii rekisteröityessäsi Yandexiin. Alla analysoimme kaikki Google-profiilin hankkimiseen tarvittavat tiedot yksityiskohtaisesti, jotta mahdollisuuksien mukaan ei jää tummia pisteitä.

Kuinka luoda Google-tili tarpeisiisi

Joten aloitamme toiminnan saadaksemme Google-tilin. Rekisteröityminen tapahtuu erityisellä sivulla, jolle sinun on täytettävä siellä oleva lomake, jonka ensimmäiseen osaan sinun on syötettävä nimesi, sukunimesi ja kirjautumistunnuksesi osana Sähköposti:

Luonnollisesti postilaatikkosi sijaitsee Gmail-palvelimella, tämä palvelu on osa Googlen sovelluksia. Aina pitäisi kuitenkin olla vaihtoehto, koska käyttäjät eivät ymmärrä valinnanvaraa. V tässä tapauksessa, jos et halua luoda sähköpostiasi Gmailissa, sinun on napsautettava linkkiä "Käytä nykyistä sähköpostiosoitetta. posti". Sitten lomake saa hieman erilaisen ilmeen ja voit syöttää sähköpostiosoitteesi, joka toimii edelleen kirjautumistunnuksena valtuutusta varten:

On syytä muistaa, että tässä tapauksessa sinun on rekisteröinnin yhteydessä vahvistettava tällaisen sähköpostin osoite. Määritettyyn laatikkoon kirje tulee, joka sisältää linkin, jota sinun on vahvistettava noudattamalla. Mutta jälleen kerran, tällaiset lisäeleet on tehtävä vain, jos et halua rekisteröidä sähköpostia GMailiin.

Kuitenkin mielestäni luotu Google-tili edellyttää GMail-sähköpostitilin olemassaoloa, jo pelkästään siksi, että se on paljon kätevämpää käytettäessä erilaisia ​​Googlen sovelluksia ja palveluita. Lisäksi käyttöliittymää ja asetuksia uudistetaan jatkuvasti ja mikä tärkeintä, Googlen sähköpostipalvelu on turvallisuuden kannalta erittäin luotettava, josta kerron tarkemmin.

Joten jos vaihtaessasi nykyisen sähköpostin syöttämiseen muutat yhtäkkiä mielesi ja päätät silti käyttää Googlen postia, mikään ei estä sinua napsauttamaan linkkiä "Luo". uusi osoite Gmail". Mene eteenpäin ja kirjoita rekisteröintilomakkeen seuraavaan lohkoon salasana kahdesti sekä syntymäaikasi ja sukupuolesi:

Huomaa, että syntymäaika ei ole julkisesti saatavilla ilman suostumustasi. Erityisesti tulee huomioida tarve monimutkaista salasanaa niin paljon kuin mahdollista, koska tämä liittyy suoraan tulevan tilin turvallisuuteen. Omalta osaltani uskallan neuvoa tässä asiassa Kipasia, joita olen käyttänyt menestyksekkäästi jo pitkään. Mutta jatketaan Googlen rekisteröintilomakkeen täyttämistä:

Ensin sinun on syötettävä matkapuhelinnumerosi ja mieluiten lisäsähköpostiosoite. Nämä tiedot eivät ole tarpeettomia turvallisuustason nostamisen kannalta. Jos esimerkiksi unohdat salasanasi tai se on jotenkin kadonnut, saat tekstiviestillä tiedot, joita tarvitaan Google-tilisi käyttöoikeuden palauttamiseen. Korvaava sähköpostiosoite parantaa myös tilin suojaustasoa ja voi palvella muun muassa ilmoitusten vastaanottamista.

Sitten kirjoitamme captcha vastaavalle riville "Syötä teksti" ja siirrymme rekisteröintilomakkeen viimeiseen osaan, jossa sinun on valittava maa (se, jossa asut, ilmoitetaan automaattisesti) ja rastita myös suostumuksesi Googlen palveluiden käyttöehtojen ja tietosuojakäytännön kanssa:


Tämä ehdotus kuitenkin tämä vaihe voit helposti jättää sen huomiotta ja ladata kuvan myöhemmin. Tämä voidaan tehdä milloin tahansa käyttämällä profiilisi sopivia vaihtoehtoja. Siksi voit välittömästi napsauttaa "Seuraava" -painiketta. Tämän toiminnon tuloksena huomaa, että olet onnistunut luomaan Google-tilin:


Kun napsautat "Seuraava", löydät itsesi verkkosivulta, josta pääset kaikkiin sovelluksiin, palveluihin, asetuksiin ja muihin tarvittaviin palveluihin:


Ehkä joillekin on helpompi omaksua videon tiedot. Siksi tarjoan videon Google-tilin luomisesta:

No, taso huomioon ottaen nykyaikaiset tekniikat Ei ole mielestäni tarpeeton video tilin luomisesta Googlessa Android-pohjaisille mobiililaitteille:

Kirjaudu Google-tiliin ja perusasetukset

Joten yllä olevassa esimerkissä olemme määrittäneet, kuinka Google-tili rekisteröidään. Voit syöttää UZ:n heti napsauttamalla siluettia oikealla yläkulma ja napsauta sitten sopivaa linkkiä (voit jatkossa kirjautua sisään valtuutussivulta):

Kuten tiedät, Google antaa sinun luoda niin monta profiilia kuin haluat, eri profiileja vastaavasti postilaatikot Gmail. Jos saat useita UZ:ita, voit suorittaa useita kirjautumisia kirjautumalla niihin samanaikaisesti ja vaihtamalla eri tilien välillä, mikä on erittäin kätevää työskennellessäsi:

Kun olet kirjautunut tilillesi, voit siirtyä asetuksiin ja määrittää siten mieltymyksesi. Muuten, pidän todella käyttöliittymästä sekä havainnoinnin helppouden että tarjottujen mahdollisuuksien laajuuden suhteen. Siksi en ehkä kuvaile yksityiskohtaisesti kaikkia mahdollisia vaihtoehtoja, kaikki on täällä intuitiivisesti selvää, kerron sinulle yleisellä tasolla ja asun vain yksityiskohtaisemmin niissä kohdissa, jotka näyttävät minusta tärkeimmiltä.

V osio "Henkilötiedot" Ensinnäkin, voit lisätä valokuvan, jos et tehnyt sitä rekisteröintiprosessin aikana:


Kaikki mahdolliset muokkaukset tämän osion vasemmalla puolella liittyvät tavalla tai toisella sinulle automaattisesti luodun profiilin asetusten asetuksiin, joka on saavuttamassa hurjaa suosiota, mikä ei ole ihme, kun ottaa huomioon, kenen voimakkaan siiven alla se on. Mutta puhumme tästä yksityiskohtaisemmin erillisessä artikkelissa, koska siellä on monia vivahteita.

Oikealla puolella Perustieto jotka on ilmoitettu rekisteröinnin yhteydessä (sähköpostiosoite ja puhelinnumero). Jos haluat muuttaa näitä tietoja, sinun tarvitsee vain napsauttaa "Muuta" -painiketta ja muokata mitä tarvitset juuri avautuneella sivulla.

"Kieli"-välilehdellä valitse käyttöliittymän pääkieli sekä kielet, jotka tulisi jättää käännöksen ulkopuolelle, kun työskentelet tekstin kanssa. Täällä voit myös määrittää näppäimistön syöttötavan. Paina asianmukaisia ​​painikkeita ja saat heti tuloksen, ei mitään monimutkaista.

Kuinka pitää Google-tilisi mahdollisimman turvassa

Luulen, että kaikki ovat kanssani samaa mieltä, jos sanon, että se on kaikista tärkein näkökohta suljetut järjestelmät on niiden luotettava suoja ulkopuolisilta tunkeutumisilta. Siksi kerron nyt sinulle tarkemmin toimenpiteistä, joilla voit parantaa tilisi turvallisuutta ja säilyttää luottamukselliset tiedot.

Siirry ensin tilisi asetusten "Turvallisuus"-osioon. Ensimmäisessä lohkossa yksi vaihtoehdoista antaa sinun vaihtaa tilisi kirjautumissalasanan milloin tahansa. Voit tehdä tämän napsauttamalla "Vaihda salasana" -painiketta:


Suuri askel turvallisuuden parantamisessa on yhteyden muodostaminen kaksivaiheinen todennus joka on oletuksena pois käytöstä. Napsauta "Asetukset" ja siirry verkkosivulle aloittaaksesi tämän vaihtoehdon aktivoinnin, jossa kuvat näyttävät sen edut:


Kuten luultavasti ymmärsit, lyhyesti ydin tätä menetelmää on, että kun kirjaudut Google-tiliin, sinun on itse salasanan lisäksi syötettävä koodi, joka lähetetään kännykkä... Napsauta siis "Jatka asennukseen" -painiketta ja kirjoita matkapuhelinnumerosi ensimmäisenä vaiheena:


Voit myös valita koodin vastaanottotavan (äänellä tai tekstiviestillä). Pyydä sitten lähettämään vahvistuskoodi. Kun saat sen, kirjoita se oikealle riville:


Tee seuraavaksi pyyntö "Vahvista". Kolmannessa vaiheessa sinua kehotetaan laskemaan Tämä tietokone luotettava. Tämä on välttämätöntä, jotta Google ei enää lähetä sinulle vahvistuskoodia joka kerta, kun seuraavan kerran kirjaudut tiliisi tältä tietokoneelta:


Viimeinen vaihe on omistettu suojauksen lopulliselle aktivoinnille kaksivaiheisen todennuksen muodossa:


Tämän toimenpiteen jälkeen avautuu sivu, jolla annetaan lisäehdotuksia turvajärjestelmän optimoimiseksi. Suosittelen sinua tutkimaan niitä huolellisesti, koska nämä asetukset eivät vain anna sinun lisätä suojaustasoa, vaan myös mahdollistavat aina varaosan odottamattomien vaikeuksien sattuessa.

Katsotaanpa, mitä muuta voidaan tehdä optimaalisen suojan saamiseksi ja ei-toivottujen tilanteiden estämiseksi:

  • Luo koodit sovelluksessa - kun yrität kirjautua Google-tilillesi toisesta tietokoneesta, puhelimesta tai tabletista, sinulta kysytään vahvistuskoodia, jonka saat ohjelman avulla Google Authenticator... Jos ilmenee vaikeuksia, on edelleen vaihtoehto tilata koodi tekstiviestillä tai ääniviesti... Tämä sovellus voidaan ladata viralliselta Google Play -sivulta;
  • Lisää puhelinnumero - jos pääpuhelin ei jostain syystä ole käytettävissä (vika, varkaus jne.), voit käyttää varavaihtoehtoa toisen matkapuhelimen muodossa, johon koodi lähetetään. Mitä enemmän lisänumeroita lisäät, sitä paremmin vakuutat itsesi ylivoimaisen esteen varalta. Jokaiselle puhelinnumerolle suoritetaan vahvistustoiminto, joka on samanlainen kuin yllä kuvattu kaksivaiheisen todennuksen yhteydessä;
  • Tulosta tai lataa varakoodit- tämä vaihtoehto on niille, jotka pitkä aika on poissa eikä voi käyttää Google Authenticator -sovellusta tai puhelinta jossain vaiheessa. Aluksi annetaan 10 koodia, käytettyjä koodeja ei voi käyttää enempää, jatkossa on mahdollista generoida lisää koodinumeroita. Kaikki tämä on sivulla, jolle sinut ohjataan, jos napsautat linkkiä "Näytä varakoodit".

Samassa osiossa "Turvallisuus" on asetuslohko "Tilin käyttöoikeus"... Jos napsautat "Koko luettelo" -linkkiä, sinut ohjataan sivulle, jolla annetaan luettelo kaikista verkkoresursseista ja sovelluksista, joilla on jollakin tapaa pääsy tiliisi:


Jos sinulla on huonoja epäilyksiä heidän tilistään, voit helposti ja yksinkertaisesti sulkea mahdollisuuden käyttää UZ-tietojasi valitsemalla kohteen vasemmalla puolella ja napsauttamalla oikealla olevaa "Estä pääsy" -painiketta.

Edelleen. Jos jakso « Viimeisimmät tapahtumat» seuraa linkkiä "Koko luettelo", saat koko listan tarvittavat tiedot kaikki tilin turvallisuuteen liittyvät toimet (yritykset kirjautua sisään tai vaihtaa salasana). Jos jokin toimenpide vaikuttaa epäilyttävältä, esimerkiksi kirjautuminen selaimesta, jota et ole koskaan käyttänyt tai ajankohta, jolloin et millään tavalla voinut suorittaa tällaista toimintoa, voit tehdä tarvittavat johtopäätökset ja ryhtyä tarvittaviin toimenpiteisiin tilanteen korjaamiseksi. Esimerkiksi tässä tapauksessa on suositeltavaa vaihtaa salasana välittömästi.

Toisessa alaosassa "Palautus ja hälytykset" voit määrittää epäilyttävää toimintaa koskevien viestien vastaanottamisen. Napsauta "Lähetä muistutuksia puhelimeen" -tekstin vieressä olevaa "Muuta" -linkkiä:


Laitamme valintamerkin ilmoitustyyppien eteen, jonka seurauksena saat Googlelta tekstiviestejä matkapuhelimeesi, jos löydät epäilyttäviä toimia kolmansien osapuolien toimesta UZ:n suhteen.

Kuinka hallita tietoja, poistaa ja palauttaa Google-tilisi

Tab "Tiedonhallinta" voit tehdä erilaisia ​​asetuksia, jotka ovat juuri sinua varten. Esimerkiksi Tallennustila-alaosiossa on kattavat tiedot tallennettujen tiedostojen määrästä (Google Discissä, Gmailissa ja Google + Photosissa).

Ilmainen paketti mahdollistaa jopa 15 Gt:n käytön levytila... Samaa mieltä, tämä on paljon tavalliselle käyttäjälle. No, jos haluat lisätä vapaata tilaa tiettyyn tarkoitukseen, sinun on vaihdettava maksulliseen vaihtoehtoon napsauttamalla "Muuta tariffia" -linkkiä.


Samassa välilehdessä on niin mielenkiintoinen vaihtoehto kuin "Google varmuuden vuoksi". Itse asiassa tämä on tahto sanan varsinaisessa merkityksessä. Loppujen lopuksi elämässämme voi tapahtua mitä tahansa, joten voit tehdä luettelon henkilöistä, joille kaikki "omaisuutesi" siirretään valokuvien, tiedostojen ja muiden tietojen muodossa, jos tili on passiivinen tietyn ajan, jotka tulee asettaa asetuksissa.

Joten ensin määritämme toimettomuusjakson ja lisäämme sitten välityspalvelimet joka saa kaikki tilitietosi testamenttisi mukaisesti. Napsauta asianmukaista linkkiä ja seuraa ohjeita, jotka ovat varsin ymmärrettäviä.

Huomaa, että on mahdollista asettaa puhelinvastaaja tietylle Gmail-sähköposti joka lähettää annettu viesti kaikille vastaanottajille, jotka kirjoittavat sinulle käyttämättömyysajan päätyttyä. Jos UZ on määrä purkaa tietyn ajan kuluttua, napsauta hiiren vasemmalla painikkeella tyhjää solua "Poista tili" -vaihtoehdon vieressä ja napsauta sitten "Ota käyttöön".

"Tiedonhallinta"-välilehden samannimisessä alaosiossa on linkki "Poista tili ja tiedot". Kun olet napsauttanut sitä, lue varoitus huolellisesti, koska tilin poistaminen on vastuullinen päätös.


Joten tarkastelimme, kuinka Google-tili poistetaan, nyt on aika ymmärtää, mitä toimia sen palauttamiseksi on ryhdyttävä tekemään. Mainitsin tästä mahdollisuudesta yllä tekstissä rekisteröinnin kuvauksen yhteydessä. Tämä voi olla tarpeen, jos yllättäen syntyy epämiellyttävä tilanne, joka liittyy salasanan katoamiseen tai, epätoivoisemmin, tilin takavarikointiin ja pääsyn menettämiseen.

Google on huolissaan käyttäjiensä tietojen turvallisuudesta, joten tilin palauttaminen on mahdollista vasta, kun on sataprosenttisesti varma, että olet omistaja. Siksi rekisteröinnin yhteydessä ilmoitamme palautusparametrit, jotka tässä tapauksessa ovat lisäsähköposti ja puhelinnumero.

Voit palauttaa pääsyn Google-tiliisi. Jos et saa selvää jostain, saat vastaukset kysymyksiisi ja toimintavaihtoehdot tietyssä tilanteessa klo Tämä ja Tämä ohjesivut.

Kaikki Googlen sovellukset ja palvelut

Googlella on koko joukko erilaisia ​​palveluita ja palveluita, kuten sanotaan, kaikkiin tilanteisiin. Melkein kaikki käyttäjä löytää tällä listalla vaadittu sovellus tietyn ongelman ratkaisemiseksi. Siksi en voi sivuuttaa tätä näkökohtaa millään tavalla tilin luomisesta. Epäilen sitä Tämä hetki suurin osa täydellinen luettelo Palvelut sijaitsevat yhdellä Wikipedian sivuista.

Siirrytään nyt tilillemme ja napsauta kuvaketta, joka kutsuu oletuskuvakejoukon, joista jokainen tarkoittaa tiettyä Google-palvelua tai sovellusta:

Klikkaamalla valittua kuvaketta siirryt tämän kuvan osoittamalle palvelun sivulle. Jos napsautat "Lisää" -linkkiä, saat muutaman lisäkuvakkeen:

Tänne ilmestyy myös uusi linkki "Muut tarjoukset Googlelta", jota klikkaamalla pääset uudelle web-sivulle, jossa on laajennettu lista, joka ei kuitenkaan ole vielä läheskään täydellinen (saat laajemman yksi, jos vierailet Wikipedia-sivulla yllä olevasta linkistä):


Mukavuussyistä, jos haluat lisätä tämän tai toisen sovelluksen alkuperäiseen rekisteriin, joka tulee näkyviin, kun napsautat tilin kuvaketta, sinun on mentävä tämän palvelun sivulle, kun olet aiemmin kirjautunut tilillesi:

Nyt sinun tulee napsauttaa UZ:ssasi merkintää "Lisää pikakuvake", minkä seurauksena tämän kuvake Google-palvelu tulee olemaan kokoelmassa muiden kuvien kanssa.

"20. huhtikuuta 2017 alkaen valtuutuspyyntöjen lähettäminen sisäänrakennetuista selaimista on estetty."
Tämä 1. maaliskuuta ilmestynyt viesti näkyy joissakin sovelluksissa, joissa vaaditaan lupa. Google kirjoitti tästä blogissaan jo elokuussa 2016, mikä tarkoittaa, että pian monien sovellusten on kirjoitettava rekisteröintitoteutus uudelleen. Ei ole juurikaan miellyttävää, mutta ulospääsy on olemassa - käyttää suositeltua Google-sisäänkirjautumistapaa.

Tästä menetelmästä keskustellaan oppitunnilla, samoin kuin kuinka saada tarvittavat tunnukset toimimaan Google API:n kanssa.

Oppitunti sisältää osittaisen käännöksen virallisesta dokumentaatiosta. Mutta ensin vähän taustaa harjoittelustani ja ensimmäisestä työstäni OAuth2:n kanssa, ehkä joku joutuu samanlaiseen tilanteeseen.

Minulta kesti sovelluksen saada chatin YouTuben suorasta lähetyksestä. Ja sitten huomasin, että lähetyksen (ja vasta sitten chatin) vastaanottamispyyntöjen lähettämiseksi on suoritettava OAuth2-käyttäjätodennus. Aloin etsiä. Tästä aiheesta on hyvin vähän tietoa, se on hajallaan, ei sovi minun tapaukseeni, ja tietysti kaikki oli päällä Englannin kieli... Pohjimmiltaan tiedot oli tarkoitettu työskentelyyn suosituimpien sovellusliittymien kanssa: Drive, Cloud, Google plus... Virallisessa YouTube API -dokumentaatiossa on valmis koodi, ota se ja käytä, mutta se ei sovellu Androidille. Vietettyäni huomattavan ajan yrityksen ja erehdyksen kautta pääsin toimivaan ratkaisuun. Ensimmäinen asia, jonka halusin tehdä jälkeenpäin, oli kerätä tiedot "kasaan" ja laittaa ne hyllyille, mikä sai minut kirjoittamaan tämän oppitunnin.

Aluksi päätökseni alkoi siitä, että WebView avattiin käyttäjän edessä valtuutusta varten (syötä sähköpostiosoite, salasana). Seuraavaksi pyydettiin lupa tietojen käyttöön ja vasta luvan jälkeen saatiin vastauksessa todennuskoodi (AuthCode), mitä sen kanssa tehdään myöhemmin tarkemmin. WebView'ssa avautunut URL-osoite oli seuraava:

Https://accounts.google.com/o/oauth2/auth? client_id = 60 ********* 5ad3np.apps.googleusercontent.com & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & access_type = offline & vastaustyyppi = koodi & soveltamisala = https: //www. googleapis.com/auth /youtube.readonly
Tämä ei ole muuta kuin lähetyspyyntö, johon vastauksena vastaanotettiin authCode-koodin sisältävä sivu ja koodi oli sivun otsikossa. Kaikki on API:n suosituksen mukaisesti, ja koodin piilottaminen käyttäjältä jätettiin kehittäjän tehtäväksi.

Klikkaamalla linkkiä "Lisää" pääsemme blogiin, jossa lukee, että turvallisuuden nimissä WebView'n kautta todennus ei toimi 20. huhtikuuta alkaen. Luulen, että tein sen juuri ja minun on tehtävä se uudelleen sisäänkirjautumisen kautta. Ja aluksi yritin toteuttaa tämän palvelun kautta. Kuitenkin jo olemassa olevalla tiedolla "mitä ja miksi" se selvisi melko nopeasti. Joten aloitetaan.

1. Valtuustietojen hankkiminen

Luo API Managerissa uusi projekti(tai valitse olemassa oleva):


Valtuutusta varten tarvitset määritystiedoston, jonka saat ohjatussa toiminnossa:


Täytä sovelluksen nimi ja pakettikentät. Seuraavaksi valitsemme, minkä palvelun yhdistämme (Google Sign-In), tähän sinun on syötettävä SHA1-sovellusavain, se on helppo saada: Android Studiosta löydämme Gradle-välilehden, avaa Tasks-android-signingReport-välilehdet. Kaksoisnapsauta, ja tiedot avaimista näkyvät lokeissa. Etsi SHA1-avain, kopioi se.



Napsauta painiketta "Luo määritystiedosto" ja sitten "Lataa google-services.json". Tämä json tiedosto tallenna projektikansioon "app".

Tärkeä! Jos aiot julkaista sovelluksen Google Playssa, virheenkorjausavain SHA1 on korvattava julkaisuavaimella ja määritystiedosto on korvattava vastaavasti.

Menettäessämme API Manageriin näemme, että OAuth-asiakkaiden avaimet ja tunnisteet on luotu. Tarvitsemme vain Web-asiakastiedot (asiakastunnus ja asiakassalaisuus).


"OAuth-käyttöpyyntöikkuna" -välilehdellä voit muuttaa sähköpostiosoitetta ja tuotteen nimeä - tämä kirjoitetaan, kun lupaa pyydetään "Sovellus **** pyytää: ..."

2. Sisäänkirjautumisasiakasohjelman määrittäminen

Voit käyttää Google Api Client -ohjelmaa lisäämällä riippuvuudet gradle-sovellustiedostoon:

Kääntää "com.google.android.gms: play-services-auth: 10.2.0"
Ja laajennus (tiedoston lopussa):

Käytä laajennusta: "com.google.gms.google-services"
Gradle-projektitiedostoon riippuen:

Luokkapolku "com.google.gms: google-palvelut: 3.0.0"
Asetusvaihtoehdot:

GoogleSignInOptions gso = uusi GoogleSignInOptions.Builder (GoogleSignInOptions.DEFAULT_SIGN_IN) .requestServerAuthCode (getString (R.string.server_client_id)) .requestEmail () .requestlyScopes. (://newadpe).builder );
Tässä eniten kiinnostavat rivit ovat:

RequestServerAuthCode (getString (R.string.server_client_id)) - pyydämme authCode-koodia välittäen yllä saamamme asiakastunnisteparametrin (kaikki kokonaisuudessaan).

RequestScopes (uusi laajuus ("***")) - pyydämme käytetylle API:lle tarvittavaa käyttöaluetta / laajuutta. Scopesissa on jo määritettyjä alueita, mutta jos tarvitsemaasi aluetta ei sieltä löytynyt, voit asettaa oman, kuten minun tapauksessani. Käyttäjälle se näytetään pääsynä "mihin" sovellus haluaa saada.

Asiakkaan konfigurointi:

GoogleApiClient mApiClient = uusi GoogleApiClient.Builder (this) .enableAutoManage (tämä, tämä) .addApi (Auth.GOOGLE_SIGN_IN_API, gso) .build ();
Tässä kaikki on dokumentaation standardin mukaan:

EnableAutoManage (this, this) - aktiviteetti ja yhteyden kuuntelija välitetään parametreille (toteutamme GoogleApiClient.OnConnectionFailedListener-rajapinnan).

AddApi (Auth.GOOGLE_SIGN_IN_API, gso) – osoitamme, että käytämme kirjautumissovellusliittymää ja aiemmin luotua asetusobjektia.


Se näyttää tältä:

Aktiviteetissa painike määritellään kuten kaikki muutkin näkymät, ripustamme siihen kuuntelijan ja suoritamme menetelmän napsauttamalla:

@Override public void onClick (Näytä näkymä) (kytkin (view.getId ()) (tapaus R.id.activity_button_sign_in: signIn (); break;))
Kutsuttavan menetelmän koodi on tarkoituksen luominen ja aktivointikutsu valtuutusta varten:

Julkinen void signIn () (Intent signInIntent = Auth.GoogleSignInApi.getSignIntent (mApiClient); startActivityForResult (signInIntent, RC_AUTH_CODE);)
Välitämme määritetty mApiClient parametrille. RC_AUTH_CODE mikä tahansa numero, kuten aina, aktivoinnin tuloksen seuraamiseksi.

Kun napsautat painiketta, sinua pyydetään valitsemaan tili kirjautuaksesi tai lisäämään uusi. Kun sovellus on valittu, se pyytää lupaa:


3. Todennuskoodin saaminen

Kun käyttäjä on antanut luvan, saamme hänen tilinsä tiedot onActivityResultissa:

@Override suojattu void onActivityResult (int requestCode, int resultCode, Intent-data) (if (requestCode == RC_AUTH_CODE) (GoogleSignInResult tulos = Auth.GoogleSignInApi.getSignInResultFromIntent (data); if (StratsuccesscountAccunnettIntentAccunnet getServerAuthCode (); getAccessToken (authCode);)))
Tämän seurauksena saamme todennuskoodin muodossa tavallinen merkkijono, se näyttää jotakuinkin tältä:

4 / iHhVmqtxccXh0Qs ********* oo5XG8OjaNsWu_kEKyw
Voit myös saada käyttäjän sähköpostiosoitteen, käyttäjätunnuksen ja avatarin tililtä:

Acct.getEmail ()
acct.getDisplayName ()
acct.getPhotoUrl ()

Saatat tarvita näitä tietoja esimerkiksi lisätäksesi ne NavigationView-näkymän otsikkoon.

4. Access Tokenin ja Refresh Tokenin hankkiminen

Saimme todennuskoodin, nyt se on vaihdettava API-pyyntöjen edellyttämiin tunnuksiin. Teemme tämän pyynnön osoitteessa https://www.googleapis.com/oauth2/v4/token. Teen sen esimerkiksi OkHttp:llä.

Julkinen void getAccessToken (merkkijono authCode) (OkHttpClient client = uusi OkHttpClient (); RequestBody requestBody = uusi FormEncodingBuilder () .add ("grant_type", "authorization_code") .add ("client_r.string" getString_er), .add ("client_secret", getString (R.string.client_secret)) .add ("koodi", authCode) .build (); lopullinen pyyntö = uusi Request.Builder () .url ("https: // www. googleapis.com/oauth2/v4/token ") .header (" Content-Type "," application / x-www-form-urlencoded ") .post (requestBody) .build (); client.newCall (pyyntö) .enqueue (uusi takaisinsoitto () (@Override public void onFailure (Pyyntöpyyntö, IOException e) () @Override public void onResponse (Response response) heittää IOExceptionin (yritä (JSONObject jsonObject = uusi JSONObject (response.body (). merkkijono ())) ; mAccessToken = jsonObject.get ("pääsytunnus"). toString (); mTokenType = jsonObject.get ("tunnus_tyyppi"). toString (); mRefreshToken = jsonObject.get ("refresh_token"). toString ();) catch (JSONException) e) (e .printStackTrace (); )))); )
Katsotaanpa parametreja tarkemmin. Request.Builderissa () välitämme URL-osoitteen, jonka kautta saamme tunnukset:

URL-osoite ("https://www.googleapis.com/oauth2/v4/token")
Määritämme otsikossa sisältötyypin:

Otsikko ("Content-Type", "application / x-www-form-urlencoded")
Osoitamme, että tämä POST-menetelmä, annamme kehon sille:

Post (requestBody)
Luodussa requestBodyssa on oltava parametrit:

"grant_type", "authorization_code" - osoittavat, että lähetämme valtuutuskoodin
"client_id", getString (R.string.server_client_id) - parametri on API Managerilta saatu asiakastunnus
"client_secret", getString (R.string.client_secret) - API Managerista saatu asiakassalaisuus
"koodi", authCode - todellinen vastaanotettu koodi.

Pyyntö on asynkroninen, vastauksessa saamme tavallisen jsonin, jossa on kaikki työhön tarvittavat tiedot:

("access_token": "ya29.GlsfBJNMTfGy…", "token_type": "Kantaja", "expires_in": 3600, "refresh_token": "1 \ / 72OqA7zYuyY__XhGij5oA2nMTfGy...", en:"id_ht7,"en "en"
"access_token" - käyttöoikeustunnus, jota varten kaikki tehtiin
"expires_in" - käyttöoikeustunnuksen käyttöikä, oletusarvoisesti token kestää 1 tunnin ja voit vastaanottaa pyynnöstä 25 tokenia päivässä, ei enempää.
"token_type" - tunnuksen tyyppi, se on myös muistettava, se lisätään myös api:n pyyntöön tulevaisuudessa.
"refresh_token" - tunnus, jolla päivitetään käyttöoikeus, kun tunti elämästä on kulunut. Päivitystunnus on ennallaan. Usein foorumeilla näin ongelman, johon törmäsin itse: tätä merkkiä ei tullut pyynnössä. Virheet johtuvat väärästä valtuustietojen vastaanottamisesta tai virheellisistä pyynnöistä. Jos valtuutus suoritettiin WebView'n kautta, ja niin tärkeää parametria kuin access_type = offline ei ilmoitettu URL-osoitteessa, päivitystunnusta ei yksinkertaisesti tullut.

5. Käyttöoikeustunnuksen päivittäminen

Tunti on kulunut, käyttöoikeustunnus ei ole enää aktiivinen, uusi tarvitaan. Sen jälkeen 401- tai 403-virheet ilmestyvät, palvelin sanoo, että käyttäjällä ei ole valtuutusta tai hänellä ei ole pääsyä. Uuden luvan pyytäminen ei ole hyvä, jos tarvitsemme jatkuvaa istuntoa, esimerkiksi kuten minun, meidän on saatava jatkuvasti viestejä chatista lähetyksen aikana, mikä kestää useita tunteja. Mitä tehdä? Lähetä pyyntö uuden tunnuksen hankkimiseksi.

Pyyntö on periaatteessa sama kuin kohdassa 4, lukuun ottamatta joitain parametreja:

Yksityinen void getNewAccessToken () (OkHttpClient client = uusi OkHttpClient (); RequestBody requestBody = uusi FormEncodingBuilder () .add ("refresh_token", mRefreshToken) .add ("client_id", "gettringtserver (R_client", "gettringtserving. (R.string.client_secret)) .add (" grant_type "," refresh_token ") .build (); lopullinen pyyntö = uusi Request.Builder () .url (" https: //www.googleapis. com / oauth2 / v4 / token ") .header (" Content-Type "," application / x-www-form-urlencoded ") .post (requestBody) .build (); client.newCall (pyyntö) .enqueue (uusi takaisinsoitto () () @Override public void onFailure (Pyyntöpyyntö, IOException e) () @Override public void onResponse (Response response) heittää IOExceptionin (yritä (JSONObject jsonObject = new JSONObject (response.body ().). String ()); mAccessonTobject). ("access_token"). toString ();) catch (JSONPoikkeus e) (e.printStackTrace ();))));)
Tässä ovat tärkeät parametrit:

"grant_type", "refresh_token" - määritä tyypissä, jonka lähetämme päivitystunnisteen
"refresh_token", mRefreshToken - ja itse tunnus

Vastaus on json, joka sisältää uuden käyttöoikeustunnuksen, jolla voit taas käyttää API:ta:

("access_token": "ya29.GlsfBM7Y ...", "token_type": "Kantaja", "expires_in": 3600, "id_token": "eyJhbGciOiJ ...")
Tämä viimeistelee käyttäjän valtuutuksen ja todennuksen.

Esimerkkinä näytän, miltä API-pyyntö näyttää ja kuinka päivitän tunnuksen.
Käytän Retrofit2 + RxAndroidia API-pyyntöön. Live-chatin vastaanottamispyyntö näyttää tältä:

@GET (GoogleApiUrls.Youtube.CHAT) Havaittavissa getChat (@Header ("Valtuutus") Merkkijonotunnus, @Query ("liveChatId") Merkkijono liveChatId, @Query ("osa") Merkkijonoosa);
Tässä on tärkeää huomata, että otsikossa on valtuutusavaimen mukaan välitettävä tunnuksen tyyppi ja itse käyttöoikeustunnus. Eli näin:

Valtuutuksen haltija ya29.GlsfBJNMTfGy ...
Seuraavaksi teen pyynnön RxAndroidin kautta, ja koska onError-takaisinsoittoon tulee kaikenlaisia ​​virheitä, tunnin kuluttua saapuu HttpException-virhe koodilla 401 Luvaton koodi. Tässä käsittelen sen, tarkistan, onko tämä sama virhe, muunnan sen sitten sopivaan tyyppiin, tarkistan, onko se todella 401-koodi ja suoritan menetelmän uuden tunnuksen hankkimiseksi, ja toista sitten pyyntö.

@Override public void onError (Throwable e) (if (e instance of HttpException) (HttpException poikkeus = (HttpException) e; if (exception.code () == 401) (getNewAccessToken ();)))
Tokenin tarkistamiseksi on myös GET-pyyntö:

Https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=ya29.GlsfBJNMTfGy...
Vastauksena saat tiedot tunnuksesta, jos se on edelleen aktiivinen, tai virheilmoituksen, jos sen käyttöikä on umpeutunut.

Jälleen Google-tunnuksen päivityksen toteuttaminen on jätetty kehittäjän tehtäväksi.

Ennen työn aloittamista suosittelen, että tarkistat pyynnöt kolmannen osapuolen sovelluksesta/laajennuksesta, esimerkiksi Postmanista, varmistaaksesi, että parametrit on syötetty oikein ja vastaukset vastaanotettu. Olen erittäin iloinen, jos oppitunnista on jollekin hyötyä!

Tilisi tallentaa sovelluksesi, musiikkisi, sähköpostisi, kirjasi, asiakirjasi, luottokortit ja muuta tavaraa. Nyt on aika suojata se jollakin enemmän kuin tavallisella salasanalla kaikille. Jos seuraat teknologian maailman uutisia, sinun tulee olla tietoinen Meth Honanin tilanteesta, jota hakkerit hyökkäsivät, mikä johti hänen tuhoonsa. iCloud, Viserrys ja Google tilit ja useiden laitteiden estäminen. Honanin tapauksessa hyökkäys oli mahdollista vaarantuneiden henkilötietojen ansiosta (sijaitsee vuonna avoin pääsy) ja tukipalvelujen virheet Amazon ja Omena sen sijaan, että otat yhteyttä haittaohjelmiin. Tärkein syy siihen, että hakkerit hyökkäsivät paitsi tilien ja laitteiden lisäksi myös Google Staf, Honan ei käyttänyt kaksivaiheista todennusta. Tällaiset tarinat ehdottavat aina varotoimia, ja tehokkain tapa käsitellä tätä tilannetta on käyttää kaksivaiheinen valtuutus... Sisällä videoesitys ja yksityiskohtainen kuvaus sisällyttämisestä ja asetuksista kaksivaiheinen valtuutus Google-tililläsi!

Mikä on kaksivaiheinen valtuutus?

Kaksivaiheinen valtuutus antaa sinulle ylimääräisen suojaustason pyytämällä sinulta kuusinumeroista koodia, jonka on luonut Google ja lähetetään puhelimeesi, kun kirjaudut tilillesi. Tämä tarkoittaa, että jos salasanasi hakkeroidaan, tilisi pysyy ennallaan. Tarvitset matkapuhelimeesi pääsyäksesi lisää. Voit vastaanottaa kuusinumeroisen koodin tekstiviestillä tai, jos olet käyttäjä Android, Karhunvatukka, iPhone, sovelluksesta Google Authenticator jonka avulla voit luoda koodin välittömästi. Nämä sovellukset toimivat käyttämällä sinun Google tilille ja skannaamalla salainen viivakoodi.

Entä Android laitteet ja sovellukset?

Joskus sovellus tai laite, joka käyttää Googleälä pyydä koodia tai se on epäkäytännöllistä / ei-toivottavaa. Harkitse esimerkkiä kanssa Android laitteet. Tällaisista laitteista kirjautuminen kaksivaiheisen valtuutuksen ollessa käytössä johtaa sovelluskohtaisen salasanan käyttöön. Tämän salasanan avulla laite tai sovellus pääsee käsiksi Google tilit. Saat sen täältä: accounts.google.com> "Security"> "Sovelluksien ja sivustojen valtuuttaminen". Se vie vähän aikaa ja vaivaa, mutta muuta tapaa ei ole. Olet esimerkiksi älypuhelimen omistaja Galaxy Yhteys ja tabletti Nexus 7... Luot jokaiselle laitteelle salasanan ja syötät sen kerran kunkin laitteen asetuksiin. Jos sinun on lopetettava pääsy Google tilit mistä tahansa syystä, napsauta sitten laitteen nimen vieressä olevaa "peruuttaa". Ja koska tämä salasana on kuusitoistanumeroinen ja sitä voidaan käyttää vain yhdessä laitteessa tai sovelluksessa, se on todella turvallinen.

Näkemättömät olosuhteet

Saat myös lisäkoodeja, joista jokainen auttaa pääsemään tilillesi (voidaan käyttää vain kerran);

- Google Authenticator ei tarvitse Internet-yhteyttä koodin luomiseen.

Helpdesk lipsahdus Amazon ja Omena(sekä kaksivaiheisen suojauksen puuttuminen iCloud) johti siihen, että iPad, iPhone ja Macbook Meta on epäkunnossa. Kaksivaiheinen valtuutus olisi kuitenkin voinut pelastaa hänet. Google ja liittyvät Viserrys tilit. Oletetaan, että et käytä tämäntyyppistä suojausta. Jos unohdit salasanasi ja haluat palauttaa sen, sinun on suoritettava useita toimintoja, joista yksi vastaanottaa kirjeen postitse, jonka osoitteen määritit aiemmin. Tämä menettely on vain osittain piilotettu, mikä antoi hakkereille mahdollisuuden murtautua Metan tiliin. Tämä on tukipalvelun erittäin suuri virhe. Amazon ja Omena... Jos käyttäjä olisi ottanut kaksivaiheisen valtuutuksen käyttöön, hakkerit näkivät seuraavan viestin yrittäessään palauttaa salasanansa:

Toimittajat ja varsinkin tekniikan alalla toimivat eivät ole esimerkkejä tavallisista eri tilien käyttäjistä, jos nimesi ei ole levinnyt kaikkialle Internetiin, todennäköisyys joutua hakkereiden uhriksi on paljon pienempi. Se on kuitenkin hyvin yksinkertainen ja tehokas varotoimenpide kaikille. Jos olet tosissaan ekosysteemin suhteen Google silloin on parempi pelata varman päälle. Muuten hakkerit voivat saada pääsyn virtuaalielämääsi ja eivät vain hallitse, vaan myös riistävät sinulta kaikki hankinnat (esimerkiksi jos olet edistynyt Android käyttäjä ja kerätty suuri määrä henkilökunta).

Joten välttääksesi odottamattomat haitat, ota kaksivaiheinen valtuutus käyttöön. Google tili.

Android A–Z: kaksivaiheinen google valtuutus tili:
luokitus 80/80 perustuu 80 arvioon.
Vain 80 arvostelua.

Tiesitkö, että käyttämällä Google, voidaan tehdä verkkosivustollasi rekisteröinti sivustolla yhdellä napsautuksella? Jokainen, jolla on Google-tili, voi yksinkertaisesti napsauttaa painiketta, jolloin 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 tai luoda lomaketta ollenkaan;

"Unohtunut salasana" -toimintoa ei tarvita;

Google on jo vahvistanut sähköpostiosoitteet, joten sinun ei tarvitse lähettää vahvistusta.

Tämä toimii tietysti vain, jos henkilöllä on Google-tili, joten on järkevää tehdä jotain tämän rekisteröintijärjestelmän lisäksi.

Sovelluksen asetukset

Ensimmäinen askel on luoda sovellus Google API -konsolin kautta. Seuraa ohjeita saadaksesi lisätietoja. Kun olet suorittanut prosessin, aseta vastaanotetut avaimet setup.php-tiedostoon.
Ajokoodi osoitteesta schema.sql(löydät sen latausarkistosta) PhpMyAdminissa tai muussa MySQL-hallintatyökalussa. Tämä luo glogin_users tietokannan taulukko, johon tallennetaan tietoja sovelluksesi käyttäjätileistä. Kirjoita sen jälkeen tietokantayhteystietosi osoitteeseen setup.php.

PHP

Idiorm-kirjastoa käytetään lukemiseen ja tietokantaan lisäämiseen. Luomme seuraavat PHP-sivut:

index.php- hakemuksen päätiedosto;

setup.php- yhteys tietokantaan ja Googlen myöntämiin avaimiin;

Idiorm-kirjaston kansiot, Google PHP -kirjasto.

Katsotaanpa ensimmäisen osan koodia index.php:

200? "200px": "" + (this.scrollHeight + 5) + "px"); "> vaadi" setup.php ";

// Luo uusi Google API -asiakas
$ asiakas = uusi apiClient ();
// $ client-> setApplicationName ("Tutorialzine");

// Määritä se
$ asiakas-> setClientId ($ asiakastunnus);
$ asiakas-> setClientSecret ($ client_secret);
$ asiakas-> setDeveloperKey ($ api_avain);
$ asiakas-> setRedirectUri ($ redirect_url);
$ client-> setApprovalPrompt (false);
$ oauth2 = uusi apiOauth2Service ($ asiakas);

// 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
$ asiakas-> todennus ();

// 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"]) -> löydä_yksi ();

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 = $ tiedot ["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 = "omaisuus / img / oletus_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: $ redirect_url");
poistua;
}

// Käsittele uloskirjautumista
if (isset ($ _ GET ["logout"])) (
unset ($ _ SESSION ["käyttäjätunnus"]);
}

$ henkilö = tyhjä;
if (isset ($ _ SESSION ["user_id"])) (
// Hae henkilö tietokannasta
$ henkilö = ORM :: for_table ("login_users") -> find_one ($ _ SESSION ["käyttäjätunnus"]);
}



HTML

HTML-koodi vie sivun alaosan 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"); ">



Googlen käyttämä kirjautumislomake | Tutorialzine Demo






sisäänkirjautumislomake




Tervetuloa, nimi)?>


Olet rekisteröitynyt rekisteröity)?>


Kirjautua ulos

createAuthUrl ()?> "class =" googleLoginButton "> Kirjaudu sisään Googlella