Namų darbas — Google prisijungimas ir spąstai
Namų darbas — prisijunk per Google ir įveik spąstus. Šioje pamokoje spąstai — pati esmė: Google prisijungimą sunku „šiek tiek" suklysti, todėl atidžiai.
Paruošimas (Google Cloud Console):
- Sukurk Web OAuth klientą → jo ID įrašyk į
strings.xml(google_web_client_id) IR serverioGOOGLE_WEB_CLIENT_ID. - Sukurk Android OAuth klientą su paketu
eif.viko.lt.picair savo debug SHA-1:keytool -list -v -keystore ~/.android/debug.keystore \ -alias androiddebugkey -storepass android -keypass android - Paleisk backendą su nustatytu
GOOGLE_WEB_CLIENT_ID, programą — tikrame telefone (arba Play emuliatoriuje).
Testai: prisijunk per Google → turi patekti į meniu. Atsijunk, prisijunk per el. paštą → tas pats meniu. Backende matysi vieną vartotoją su tavo el. paštu.
Keturi TIKRI spąstai, kuriuos patys sugavom:
- Web vs Android kliento ID. Ir programa, ir serveris naudoja Web ID. Padavęs Android ID gausi
audience does not match aud claim. (Detaliau — 3 žingsnis.) - SHA-1 turi būti užregistruotas. Jei debug SHA-1 nėra Android kliento konfigūracijoje,
getGoogleIdTokeniškart mes klaidą (GetCredentialException/ „no credentials available") — Google atsisako net parodyti paskyrų. Kiekvienas kūrėjas turi PRIDĖTI savo SHA-1. - Reikia Google Play Services. Credential Manager remiasi Play Services. Įprastas emuliatorius (be „Google Play" atvaizdo) jų neturi → srautas lūžta. Testuok tikrame telefone arba emuliatoriuje su Play Store.
- Su
curlpilnai neišbandysi. Gali pasiųstiPOST /auth/googlesu išgalvotuid_token, betidtoken.Validatejį atmes → 401. Tai gerai (parodo, kad patikra veikia), bet tikrą raktą gauna tik programa iš Google. Backendo/auth/google„laimingo kelio" negalima patikrinti viencurl— reikia realaus srauto iš telefono.
Atsiskaitymui: ekrano nuotraukos: (1) „Sign in with Google" mygtukas ir Google paskyrų pasirinkimas, (2) meniu po Google prisijungimo, (3) curl su fake token → 401 (spąstas #4 kaip įrodymas, kad patikra veikia).
Toliau. Dabar Pica turi abu prisijungimo būdus po vienu raktų kontraktu. Likusi programa (9–11 pamokos) veikia vienodai — nes jai rūpi tik žetonas, ne tai, kaip jį gavai. Tai ir yra gero architektūrinio sprendimo dovana.