𝗝𝗪𝗧 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗙𝗮𝘀𝘁𝗔𝗣𝗜

Authentication huuliza "Wewe ni nani?" Authorization huuliza "Unaweza kufanya nini?"

Ukijenga jukwaa la AI bila usalama, mtu yeyote anaweza kupata data za siri. Wanaweza kubadilisha wasifu wa watumiaji au kuona maendeleo ya mwanafunzi. Lazima ulinde rasilimali zako.

JWT (JSON Web Token) hutatua hili. Badala ya kutuma nywila (password) kwa kila ombi, mtumiaji hutuma token salama.

Mtiririko wa kazi:

Unapaswa kutumia zana hizi:

Usihifadhi nywila katika maandishi ya kawaida (plain text). Ikiwa mdukuzi ataiba kanzi data (database) yako, atapata kila kitu. Badala yake, hifadhi hash.

Hash hubadilisha "password123" kuwa mfululizo mrefu wa herufi za nasibu. Huwezi kurudisha hash kuwa nywila. Unahakiki tu ikiwa ingizo inalingana na hash.

Jinsi ya kuijenga:

  1. Usajili Mtumiaji hutuma jina la mtumiaji na nywila. Unafanya hashing ya nywila na kuihifadhi kwenye kanzi data yako.

  2. Kuingia (Login) Mtumiaji hutuma utambulisho. Unatafuta hash iliyohifadhiwa. Unatumia maktaba (library) kuhakiki nywila. Ikiwa inalingana, unatengeneza token.

  3. Utengenezaji wa JWT Token ina data ya mtumiaji na muda wa kuisha. Unatia saini token kwa kutumia funguo ya siri (secret key). Ikiwa mtumiaji atajaribu kubadilisha data, saini itafeli.

Majibu ya kuingia (login response) yanaonekana hivi: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }

Sasa mtumiaji anashikilia funguo ya mfumo wako.

Katika sehemu inayofuata, tutajifunza jinsi ya kutumia token hizi kulinda njia (routes) maalum na kusimamia majukumu ya watumiaji.

Muhtasari wa hatua:

Chanzo: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

Jumuiya ya hiari ya kujifunza: https://t.me/GyaanSetuAi