A co to znaczy, że są w „zastrzeżonym formacie”? Czytam o tokenach odświeżania JWT i są one nieprzezroczyste, ale nie rozumiem tego terminu.
JWT ma zawartość czytelny, jak widać na przykład na https://jwt.io/ . Każdy może odkodować token i odczytać zawarte w nim informacje. Format jest udokumentowany w RFC 7519 .
Z drugiej strony nieprzezroczysty token ma format, który nie jest przeznaczony do odczytu przez ciebie. Tylko emitent zna format.
Znaczenie tego słowa już daje wskazówkę:
nieprzezroczysty / ə (ʊ) ˈpeɪk / przymiotnik
niewidoczny; nieprzeźroczysty.
Oto cytat z https://auth0.com/docs/tokens :
Nieprzezroczyste tokeny: Tokeny w zastrzeżonym formacie, które zazwyczaj zawierają pewien identyfikator informacji w trwałym magazynie serwera. Aby sprawdzić poprawność nieprzezroczystego tokena, odbiorca tokena musi zadzwonić na serwer, który go wydał.
„Nieprzezroczysty token odświeżania JWT” jest sprzecznością zgodnie z powyższą definicją. W rzeczywistości chodzi tutaj o to, że w niektórych ramach JWT tylko token uwierzytelniania jest JWT, ale jako token odświeżania używają nieprzezroczystych tokenów.
opaque token
opisany jest jako ciąg losowy, który służy jedynie jako wskaźnik do informacji przechowywanych po stronie serwera. Ten rodzaj tokena jest tu opisany jako,reference token
podczas gdyopaque token
rzeczywiście może zawierać zaszyfrowane informacje (czytelne tylko dla pierwotnego emitenta). Istnieją więc nieco inne definicje, których powinniśmy być świadomi.Tutaj termin „nieprzezroczysty” oznacza, że łańcuch (który służy jako token) jest jak odwołanie (w OOP), wskaźnik (w C) lub klucze obce (w relacyjnych bazach danych). tzn. potrzebujesz zewnętrznej treści, aby ją rozwiązać.
Prosty kontra kompozytowy:
Ciąg jest „prostym” ciągiem, w przeciwieństwie do JWS, gdzie jest „złożony”; Ma części „wewnątrz”.
Wewnątrz kontra na zewnątrz:
Możesz wyodrębnić z niego ładunek (z roszczeniami itp.) Bez odwoływania się do zewnętrznego serwera lub magazynu „poza” tym ciągiem.
Ponieważ nieprzezroczysty token jest prostym ciągiem, jest tylko odniesieniem, dlatego oczywiście jego format jest całkowicie arbitralnie określany przez serwer, który go emituje (stąd termin „format zastrzeżony”). Ciąg tokenów jest określany w momencie tworzenia treści bazowej (do której się odwołuje), tj. Kiedy jest sparowany (powiązany) z zawartością, do której odnosi się ten token (jako klucz odniesienia lub klucz obcy).
źródło