This shows you the differences between two versions of the page.
pw:laboratoare:04 [2023/02/24 12:59] ciprian.dobre [Integrare Auth0 cu React] |
pw:laboratoare:04 [2023/04/24 21:02] (current) ciprian.dobre [Crearea unui proiect React] |
||
---|---|---|---|
Line 24: | Line 24: | ||
- Instalarea Node.js și a managerului de pachete npm (Node Package Manager), dacă nu sunt deja instalate, disponibile aici: [[https://nodejs.org/en/download/]] | - Instalarea Node.js și a managerului de pachete npm (Node Package Manager), dacă nu sunt deja instalate, disponibile aici: [[https://nodejs.org/en/download/]] | ||
- Instalarea unui editor: VS Code [[https://code.visualstudio.com/download]] sau WebStorm [[https://www.jetbrains.com/webstorm/download]] (Recomandăm VS Code) | - Instalarea unui editor: VS Code [[https://code.visualstudio.com/download]] sau WebStorm [[https://www.jetbrains.com/webstorm/download]] (Recomandăm VS Code) | ||
- | - Rularea comenzii: <code>npx create-react-app my-app</code> | + | - Rularea comenzii: <code>npx create-react-app my-app |
+ | npx create-react-app my-app --template typescript // pentru initializarea cu TypeScript | ||
+ | </code> | ||
- Accesarea directorului noului proiect creat cu comanda:<code>cd my-app</code> | - Accesarea directorului noului proiect creat cu comanda:<code>cd my-app</code> | ||
- Pornirea aplicației cu comanda: <code>npm start</code> | - Pornirea aplicației cu comanda: <code>npm start</code> | ||
- Accesarea aplicației la [[http://localhost:3000/]] | - Accesarea aplicației la [[http://localhost:3000/]] | ||
+ | |||
+ | <note tip>Ca sa va ajutam pentru proiect aveti [[https://gitlab.com/mobylabwebprogramming/reactfrontend|aici]] un proiect de baza de la care sa plecati ca sa va implementati frontendul pentru proiect.</note> | ||
Line 261: | Line 265: | ||
<note>În exemplul de mai sus, ruta /produse/:id include un parametru id care poate fi utilizat pentru a afișa detaliile produsului cu id-ul specificat. Acest parametru poate fi accesat în componenta DetaliiProdus folosind obiectul match.params din React Router.</note> | <note>În exemplul de mai sus, ruta /produse/:id include un parametru id care poate fi utilizat pentru a afișa detaliile produsului cu id-ul specificat. Acest parametru poate fi accesat în componenta DetaliiProdus folosind obiectul match.params din React Router.</note> | ||
- | ==== Testarea integrarii ===== | ||
- | |||
- | Dupa ce ati integrat frontendul cu Auth0, testarea este foarte simpla: | ||
- | |||
- | - deschideti **Network Tab** in Browser Dev Tools | ||
- | - faceti un login | ||
- | - investigati call-ul prin care se intoarce tokenul, in sectiunea **Preview** | ||
- | |||
- | {{:pw:laboratoare:auth0tokens.png?800|}} | ||
- | |||
- | O sa vedeti 2 tokeni, **Access Token** si **Id Token**. | ||
- | * Access token va fi trimis catre backend, pentru **autorizare** | + | ===== Sarcini de laborator ===== |
- | * ID token este folosit de frontend, pentru extragerea datelor de profil | + | |
- | === Investigarea tokenilor === | + | Instalați-vă uneltele necesare pentru laborator și cereți ajutorul daca întâmpinați dificultăți. |
- | Pe [[http://www.jwt.io|JWT.io]] puteti investiga continutul tokenilor. | + | Creați un nou proiect și porniți-l. Daca aveți întrebări, întrebați asistentul/a, mai multe informații o să fie furnizate la următoarele laboaratoare. |
- | **ID Tokenul** ar trebui sa contina informatii de profil si **rolul injectat** la pasul 7 (daca este token pentru admin): | ||
- | {{:pw:laboratoare:auth0idtoken.png?800|}} | + | ===== Linkuri Utile ===== |
- | **Access Tokenul** ar trebui sa contina informatii legate de audienta pentru care poate fi folosit si **permisiuni injectate** la pasul 5, prin optiunea de RBAC: | + | * GitLab Schelet Frontend: [[https://gitlab.com/mobylabwebprogramming/reactfrontend]] |
+ | * Node.js: [[https://nodejs.org/en/download/]] | ||
+ | * VS Code [[https://code.visualstudio.com/download]] | ||
+ | * WebStorm [[https://www.jetbrains.com/webstorm/download/]] | ||
+ | * Tutorial React.js: [[https://reactjs.org/tutorial/tutorial.html]] | ||
- | {{:pw:laboratoare:auth0accesstoken.png?800|}} |