Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 |}}
  
pjv/laboratoare/2024/a03.1730711844.txt.gz · Last modified: 2024/11/04 11:17 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0