JSON & Token JWT
JSON
JSON (JavaScript Object Notation) este un format de reprezentare / schimb de date text foarte popular, mai ales în sfera de programare Web, deoarece este și relativ ușor de construit & parsat de către mașini (în orice limbaj), cât și relativ inteligibil de către oameni (fapt ce ajută deseori la depanare):
{
"employee": {
"name": "sonoo",
"salary": 56000,
"married": true
}
}
Majoritatea API-urilor web (REST-ful) folosesc deseori această reprezentare
pentru a structura atât datele de intrare (e.g. POST body), cât și cele de
ieșire (corp răspuns HTTP), marcate prin antetul Content-Type: application/json.
La fel este folosit și de către serverul temei.
Astfel, pentru a parsa răspunsurile primite de la server, puteţi (şi e recomandat) să folosiţi o bibliotecă. Vă sugerăm parson [1] pentru C sau nlohmann [2] pentru C++, însă puteţi folosi orice (inclusiv o soluţie proprie), justificând alegerea în README.
[1] https://github.com/kgabis/parson
[2] https://github.com/nlohmann/json
Observație
‼️ Va trebui să includeți codul bibliotecilor în sursă, altfel arhiva nu va compila pe checker.
Token JWT
Tokenurile JWT (JSON Web Token) sunt o modalitate de transmitere a informaţiilor de autentificare/autorizare dintre un client şi un server. Acestea sunt codificate binar şi semnate pentru verificarea integrităţii. Astfel se asigură că un potenţial atacator nu poate modifica datele împachetate.
Pentru a trimite tokenul către server, este necesară adăugarea acestuia în headerul Authorization. Valoarea tokenului trebuie să fie prefixată de cuvântul Bearer.
Authorization: Bearer eijjkwuqioueu9182712093801293
Pentru mai multe informaţii puteţi să consultaţi documentaţia oficială: