This shows you the differences between two versions of the page.
pjv:laboratoare:2024:a03 [2024/11/04 11:17] alexandru.gradinaru [Request-uri HTTP in Unity] |
pjv:laboratoare:2024:a03 [2024/11/04 12:42] (current) andrei.lapusteanu Updated note for back4app and parse |
||
---|---|---|---|
Line 440: | Line 440: | ||
=== Gestionare autentificare === | === Gestionare autentificare === | ||
- | Pentru a prelua din web informatii speficice pentru un anumit utilizator, cererile HTTP trebuie complementate cu informatia de autentificare. Pentru acest lucru folosim in general un token. In functie de nevoi/capabilitati/dispozitive, exista mai multe tipuri de token-uri care pot fi folosite: | + | Pentru a prelua din web informatii speficice pentru un anumit utilizator, cererile HTTP trebuie complementate cu informatia de autentificare prin folosirea unui header de Autorizare (Authorization). |
+ | |||
+ | In acest header transmitem in general un token. In functie de nevoi/capabilitati/dispozitive, exista mai multe tipuri de token-uri care pot fi folosite: | ||
* Access tokens | * Access tokens | ||
* ID tokens | * ID tokens | ||
Line 448: | Line 450: | ||
* Bearer tokens | * Bearer tokens | ||
- | + | Cel mai dese folosite sunt Bearer tokens, care, dupa cum descrie si numele, sunt o clasă generală de jeton care acordă acces părții în posesia tokenului. Token-urile de acces, ID tokens și JWT-urile sunt toate tokenuri Bearer. | |
+ | |||
+ | Mai multe detalii despre tokenuri puteti citi aici: [[https://cloud.google.com/docs/authentication/token-types]]. | ||
+ | |||
+ | Pentru a folosi un token de tip Bearer, fiecare cerere HTTP trebuie sa conta un header de Autorizare de tip Bearer. De exemplu: | ||
+ | |||
+ | <code c#> | ||
+ | //Pentru RestClient package | ||
+ | |||
+ | //autorizare | ||
+ | RestClient.DefaultRequestHeaders["Authorization"] = "Bearer "+token.access_token; | ||
+ | //alte headere in functie de nevoie | ||
+ | RestClient.DefaultRequestHeaders["Accept"] = "application/json"; | ||
+ | |||
+ | //pentru UnityWebRequests | ||
+ | |||
+ | var uwr = new UnityWebRequest(url, "POST"); | ||
+ | //autorizare | ||
+ | uwr.SetRequestHeader("Authorization", "Bearer "+token.access_token); | ||
+ | //alte headere in functie de nevoie | ||
+ | uwr.SetRequestHeader("Content-Type", "application/json"); | ||
+ | </code> | ||
==== Game Launcher in C# ==== | ==== Game Launcher in C# ==== | ||
Line 501: | Line 524: | ||
=== HTTP === | === HTTP === | ||
- | Pentru partea de backend ne vom folosi de **Back4App**, ce este o platoforma de tip backend-as-a-service (BaaS), construita pe **Parse**, ce ofera stocare cloud, servicii de autentificare, baze de date, etc. | + | Pentru partea de backend in general este nevoie de un serviciu Web, cu o baza de date in spate. |
+ | Pentru exemplificare ne vom folosi de **Back4App**, ce este o platoforma de tip backend-as-a-service (BaaS), construita pe **Parse**, ce ofera stocare cloud, servicii de autentificare, baze de date, etc. | ||
In mod special pentru acest laborator ne vom folosi de apeluri catre endpoint-uri via un REST API (request-uri HTTP). | In mod special pentru acest laborator ne vom folosi de apeluri catre endpoint-uri via un REST API (request-uri HTTP). | ||
Line 564: | Line 588: | ||
Nu uitati sa schimbati ''YOUR_APP_ID'' si ''YOUR_REST_API_KEY''. Le gasiti in **dashboard-ul proiectului Back4App -> App Settings -> Security & Keys**. | Nu uitati sa schimbati ''YOUR_APP_ID'' si ''YOUR_REST_API_KEY''. Le gasiti in **dashboard-ul proiectului Back4App -> App Settings -> Security & Keys**. | ||
</note> | </note> | ||
+ | |||
+ | === Unity === | ||
+ | |||
+ | Dupa acesti pasi va trebui sa va folositi de celalalt buton din form (Start Game), prin care veti lansa in executie build-ul de Unity, caruia ii trimiteti argumentele necesare. Va trebui sa trimiteti si acel **session token** capturat anterior. | ||
+ | |||
+ | <note> | ||
+ | * In cazul in care ati folosit Back4App, aveti [[https://dashboard.back4app.com/apidocs#user-api|aici documentatia API-urilor]]. | ||
+ | * Back4App se bazeaza pe Parse, aveti [[https://docs.parseplatform.org/rest/guide/#users|aici documentatia API-urilor]] pentru acesta | ||
+ | </note> | ||
+ | |||
+ | |||
+ | Va trebui sa va alegeti un call care necesita acest session token, anume un call care are nevoie de campul din header ''X-Parse-Session-Token''. | ||
+ | |||
+ | Folositi ''UnityWebRequest'' pentru a face request-ul. In cerinte vi se specifica sa faceti un call pentru a returna numele utilizatorului (poate fi in exemplul nostru acest ''displayName''). | ||
+ | |||
+ | Un exemplu de API call ce se foloseste de acest session token este ilustrat mai jos. | ||
+ | |||
+ | {{ :pjv:laboratoare:2024:pajv_l3_back4app_api.png?700 |}} | ||