Token хранится в открытом виде, это обычный base64.
Secret используется для получения подписи данных, чтобы их никто не мог подменить.
Token выглядит так {header}.{payload}.{hash}, которые отделены через точку.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
header
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // {"alg":"HS256","typ":"JWT"}
payload
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ // {"sub":"1234567890","name":"John Doe","iat":1516239022}
hash
let content = base64UrlEncode(header) + "." + base64UrlEncode(payload);
let hash = HMACSHA256(content, secret);
А так же посетите ресурс
https://jwt.io/
ЗЫ, если вам нужно шифровать данные, используйте JWS вместо JWT