Ta po prawdzie to JWT używa bardziej base64url niż bse64 jak u Ciebie ale pomijając już tę kwestią to niezbyt rozumiem z czym jest problem, bo jak sam piszesz:
w kosoli otrzymuję te dane, imię, id i to co chcę w nim przekazać
no to nie rozumiem, dlaczego nie możesz w tej funkcji po prostu zwrócić returnem tego Twojego payload i przypisać go sobie do jakieś zmiennej?
A po za tym to z JSON.parse trzeba uważać i ja zawsze stosuję zasadę, że jeśli już w ogóle używam localStorage i JSON.parse to korzystam z try-catch aby uniknąć przykrych niespodzianek.