Stuudiumi API
- Üldinfo
- → API päringute autentimine
- Kasutajate tuvastamine
- Andmete pärimine
- Sidumine päevikute/õppetööga
- Jagamislink Uus
API kasutamiseks vajad Stuudiumilt saadud CLIENT_ID ja CLIENT_SECRET võtmeid.
Oma rakenduse tuvastamiseks saada päringutega kaasa Authorization
HTTP header, mille väärtuse genereerid allkirjeldatud loogika järgi:
timestamp = praegune_unix_timestamp() # näiteks: 1599100000
random = "10 kuni 30 märki pikk *iga päringu jaoks eraldi genereeritud* suvaline väärtus (nonce). Näiteks cMac6zfLOG08BeMvTpYK"
signature = "40 märgi pikkune HMAC-SHA1 allkiri, HEX kujul"
Authorization päise väärtus:
"Data v2 <CLIENT_ID> <timestamp> <random> <signature>"
Näiteks:
"Authorization: Data v2 SINU_RAKENDUSE_CLIENT_ID 1599100000 cMac6zfLOG08BeMvTpYK 1e4d2ca681396345d3e6b33675c3ee86f6e65e3c"
Allkirja genereerimine:
- algorithm: SHA-1
- allkirjastatavad andmed:
<timestamp> + "tühik" + <random>
- võti: rakenduse salajane võti ehk
CLIENT_SECRET
Näiteks: kui timestamp on 1599100000
ja suvaline väärtus on cMac6zfLOG08BeMvTpYK
, siis loo allkiri nii:
signature = hash_hmac("sha1", "1599100000 cMac6zfLOG08BeMvTpYK", "RAKENDUSE_SALAJANE_VÕTI")
Tulemus → 1e4d2ca681396345d3e6b33675c3ee86f6e65e3c
Kui testid siin lehel olevate näidis-väärtustega allkirja genereerimist, pead saama samade andmetega tulemuseks sama allkirja väärtuse (1e4d2…
).
Sama algoritmi järgi genereeritud (Data v2 …
) allkiri on ka Stuudiumist sinu rakenduse suunal tulevate API päringute Stuudium-Auth
päises, “sidumine päevikute/õppetööga” lehel alapunkt 7 all kirjeldatud webhook-ide puhul.
Allkirja kontrollimisel peaks sinu rakendus kontrollima, et timestamp
väärtus ei ole päringu saamise hetkest liiga kaugel tulevikus/minevikus. Näiteks võid lubada päringud timestamp
-iga, mis on päringu ajahetkest ±15 minuti kaugusel.