Welcome to Our Website

JSON Web Token (JWT) on selittänyt

JSON Web Token on standardi, jota käytetään luoda yhteys rahakkeita sovellus.

Se toimii näin: – palvelin, luo token, joka varmentaa käyttäjän henkilöllisyyden, ja lähettää sen asiakkaalle.

asiakas lähettää token takaisin palvelimelle jokaisen seuraavan pyynnön, jotta palvelin tietää, että pyyntö tulee tietty identiteetti.

tämä arkkitehtuuri osoittautuu erittäin tehokkaaksi moderneissa verkkosovelluksissa, joissa käyttäjän todennettua suoritamme API-pyyntöjä joko levolle tai GraphQL-API: lle.

kuka käyttää JWT: tä?, Esimerkiksi Google. Jos käytät Google APIs, käytät JWT.

JWT on kryptograafisesti allekirjoitetaan (mutta ei ole salattu, joten käyttämällä HTTPS on pakollinen, kun tallentaa käyttäjän tietoja JWT), joten siellä on tae siitä, että voimme luottaa sen, kun me saada se, koska ei ole välikäsiä, ei voi siepata ja muokata sitä, tai tietoja, joita se pitää, mitätöimättä sitä.

Se sanoi, JWTs ovat usein kritisoitu niiden liikakäyttöä, ja erityisesti niitä käytetään, kun vähemmän ongelmallisia ratkaisuja voidaan käyttää.

sinun on muodostettava mielipiteesi aiheen ympärille., En puolusta toista teknologiaa, vaan esittelen kaikki mahdollisuudet ja työkalut käytössäsi.

mihin ne kelpaavat? Lähinnä API-tunnistautuminen ja palvelimen ja palvelimen välinen valtuutus.

miten JWT-merkki syntyy?

solmun avulla.,js-voit luoda ensimmäinen osa token käyttämällä tätä koodia:

const header = { "alg": "HS256", "typ": "JWT" }const encodedHeader = Buffer.from(JSON.stringify(header)).toString('base64')

– Emme aseta allekirjoittamisesta algoritmi voidaan HMAC SHA256 (JWT tukee useita algoritmeja), sitten luoda puskurin tästä JSON-koodattu kohde, ja me koodata se käyttää base64.

osittainen tulos on eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

seuraavaksi lisäämme hyötykuorman, jota voimme muokata millä tahansa tiedolla., Siellä on varattu avaimet, mukaan lukien iss ja exp joka tunnistaa liikkeeseenlaskijan ja kulunut aika token.

Voit lisätä omia tietoja token käyttämällä objekti:

const payload = { username: 'Flavio' }

Me muuntaa tämän kohteen, JSON-koodattu, Puskuria, ja voimme koodata tuloksen käyttämällä base64, aivan kuten me teimme ennen:

const encodedPayload = Buffer.from(JSON.stringify(payload)).toString('base64')

tässä tapauksessa osittainen tulos on eyJ1c2VybmFtZSI6IkZsYXZpbyJ9.,

Seuraavaksi pääsemme allekirjoituksen otsikon ja hyötykuorman sisältö, joka tekee varma, että sisältöä ei voi muuttaa, vaikka siepata meidän allekirjoitus mitätöidään. Voit tehdä tämän, käytämme crypto Node-moduuli:

käytämme secretKey salainen avain ja luoda base64 koodattu esitys salattu allekirjoitus.,

arvo allekirjoitus tässä tapauksessa on

MQWECYWUT7bayj8miVgsj8KdYI3ZRVS+WRRZjfZrGrw=

Olemme melkein valmis, meidän täytyy vain yhdistää 3 osaa header, hyötykuorma ja allekirjoitus erottamalla ne pisteellä:

const jwt = `${encodedHeader}.${encodedPayload}.${signature}`

API autentikointi

Tämä on luultavasti ainoa järkevä tapa käyttää JWT.

yleinen skenaario on: ilmoittaudut palveluun ja lataat JWT: n palvelun kojelaudasta. Tämä on mitä käytät tästä lähtien todentaa kaikki pyynnöt palvelimelle.,

Toinen käyttötapaus, joka on päinvastainen, on lähettää JWT kun voit hallita API ja asiakkaat muodostavat yhteyden sinun ja haluat, että käyttäjät voivat lähettää myöhemmät pyynnöt vain ohimennen token.

tässä tapauksessa asiakkaan on säilytettävä tunniste jonnekin. Missä on paras paikka? HttpOnly cookiessa. Muut menetelmät ovat kaikki alttiita XSS-hyökkäyksille ja sellaisina niitä tulisi välttää. HttpOnly-eväste ei ole saatavilla JavaScriptistä, ja se lähetetään automaattisesti origin-palvelimelle joka pyynnöstä, joten se sopii täydellisesti käyttökoteloon.,

Valitse paras JWT kirjasto

Riippuen kieli ja ympäristö voit käyttää, voit valita useita kirjastoja. Suosituimmat on lueteltu jwt.io verkkosivusto.

Älä käytä JWTs kuin istunto kuponkia

Sinun ei pitäisi käyttää JWTs istuntoja. Käyttää säännöllisesti palvelinpuolen istunnon mekanismi, koska se on paljon tehokkaampi ja vähemmän alttiita tietojen altistuminen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *