Vorgurakendused 2 prax 2 2015

Allikas: Lambda

Teise praktikumi teema on mitmekesist autentimist (ja potentsiaalselt maksmist) vajava https kaudu töötava rakenduse loomine nö suurel mainstream hostinguplatvormil.

Põhiülesanne on tehnoloogiastacki kasutamine, reaalne funktsionaalsus on vähem oluline: kuid mitte tähtusetu.

Tehnoloogiastack

Siin on kolm kohustuslikku osa: autentimine, suur hostinguplatvorm ja https koos serditegemisega.

Väga soovitavad, aga mittekohustuslikud on oma domeeni regamine ja kasutuselevõtt ning maksete aktsepteerimine viisil, et makse tegemise peale saab autenditud kasutaja kohe midagi teha sellist teha, mida ta maksmata ei saanud teha.

Kindlasti pead realiseerima neist mõne autentimisviisi, täispunktide jaoks kõik:

  • facebookiga autentimine
  • googlega autentimine
  • id kaardiga autentimine

Kindlasti pead realiseerima süsteemi suurel hostinguplatvormil, valides ühe neist:

  • amazoni AWS-s (soovitav, olemas tasuta variant)
  • Googles (keerukam)
  • Mõni muu, mis on siis (a) mittetriviaalne (b) eelnevalt õppejõuga kokku lepitud

Kindlasti pead realiseerima https ühenduse, tehes selleks mh vajalikud serdid.

Lisaks võiks olla soovitavad asjad, mis ei ole siiski kohustuslikud:

  • oma domeeni regamine ja kasutuselevõtt, vt ka tasuta dünaamilise dnsi teemat
  • raha kandmine oma kontole ja sisuteenuste ost (a la näed veebilehte, kui oled maksnud), vt ka digimakse.ee ja paypal.

Sisuline funktsionaalsus

Sisulise funktsionaalsuse osas on väljapakkumisel mitu varianti, kusjuures ei ole keelatud ka pakkuda ise mingit erifunktsionaalsust, aga viimasel juhul tuleb see õppejõuga enne kokku leppida.

Hea oleks (aga ei ole kohustuslik) realiseerida selline funktsionaalsus, millest võiks tegelikult kasu olla, ehk millest saaks edasi arendada praktilise süsteemi või toote.

Variandid:

Lihtne variant: autentimisinfo integraator

Realiseeri andmebaas, kuhu saab sisse autentida nii id-kaardiga kui sotsiaalmeediaga (soovitav nii fb kui google) ja mis seostab sellega fakti, et selle isikukoodi ja nimega inimene on sama, mis selle sotsiaalmeedia konto omanik.

Andmebaasile realiseeri külge avalik api, millega saab küsida nii isikukoodi kaudu nime kui fb ja google kasutajanimesid kui vastupidi, fb või google kasutajanime järgi saad isikukoodi ja nime.

Keskmise keerukusega variant: idid.ee kloon

Realiseeri see, mida idid.ee väidab, et teeb (ja võibolla teebki): lihtne oma lehele sisseintegreeritav süsteem, millega erinevate veebilehtede arendajad saavad lasta inimesel autentida id-kaardiga, nii et nad ise ei konfi oma serverit ja autentimist teeb tegelikult sinu server.

Veel parem oleks lisada sinna võimalus peale id-kaardi autentida ka fb või googlega või mobiil-id-ga.

Keerukas variant: simuleeritud brauseriga API

Realiseeri limiteeritud otsisüsteem, kus sisseloginud ja autoriseeritud isikud saavad kasutada APIt ja teha otsinguid linkedini süsteemist, nagu oleks tegu sisseloginud inimesega. Selleks peab server kasutama nn headless brauserit ja programmiliselt sinna mõne inimese nö sisse logima.

Keerukas variant: : totalisaator

Realiseeri totalisaator, kus saab kihla vedada erinevate imelike asjade peale a la valimistulemused, kohtuotsused, eksamitulemused jms (mitte ainult sport) ning teha seda erinevate reaalsete rahaliste panustega.

Keerukas variant: mikromaksete süsteem ja näide

Realiseeri süsteem, mida teised süsteemid (näiteks ajalehed) saaks teoreetiliselt kasutada mikromakseteks. Realiseeri näide, kus sinu mikromaksete süsteem on kasutusel.

Kuidas töötaks:

  • kasutaja teeb konto ja maksab ettemaksukontole. Konto on seotud fb-ga või googlega või idkaardiga.
  • üksikute pisiasjade ostmisel a la ajaleheartiklid, piletid jms võetakse raha ettemaksukontolt.

Märkmeid realisatsioonist: kuidas õppejõud sama asja praksis teeb

AWS kasutamine

https töölepanek

Enne ära hakka id-kaardi autentimist tegema, kui lihtsalt https veel ei tööta. NB! Kui sulle tuleb ette "untrusted" vms, siis kinnita erand ja jätka rahulikult.


Creating https connection:

/etc/apache2$ sudo cp mods-available/socache_shmcb.load mods-enabled/

  • then test https

Kui https töötab, siis jätka:

ID kaardi kasutamine https-s

IT-maja arvutiklassis firefox vaikimisi ei suuda id-kaarti kasutada, küll aga chrome.

Katsemasinas töötab: https://ec2-52-28-43-138.eu-central-1.compute.amazonaws.com/a.php

https id-kaardiga ja harilikult: kuidas teha

Facebooki autentimine

Facebooki app

Kõigepealt on sul vaja teha facebooki app:

  • go to https://developers.facebook.com/ and use "my apps" tab and select "Add a new app" from dropdown.
  • select "web" from the main choices "ioS", "Android" and "Web" and "Canvas".
  • Give the app a name a la "Example" and category a la "Other". get through captcha. Copy and save the
 App ID: 	XXXXXX..
 App Secret: 	XXXXX..
 values
 

A concrete app console can be accessed like https://developers.facebook.com/apps/1428005727423768?app_id=1428005727423768

Veebileht

Järgmisena tee veebileht:

ametlik FB sisselogimisõpetus: töötab väga ok, olulise asjana pane sinna sisse oma FB appi id (eeldatavalt pikk number), mille saad, kui teed FB appi lehe https://developers.facebook.com/apps kaudu.

Leht http://ec2-52-28-43-138.eu-central-1.compute.amazonaws.com/a.html ongi tehtud täpselt viidatud näite koopiana + pandud sisse õige app id https://developers.facebook.com/apps/996569770365422/settings/