1. Если и access и refresh хранить в localStorage, то до них можно добраться через консоль (не подходит)
2. Если refresh токен изолировать в куки, даже с флагом httpOnly, его можно увидеть в панели разработчика/Applications/Cookies (тоже не подходит)
Sergey Khindrikson, злоумышленник не сможет увидеть токен пользователя, если пользователь сам не дал доступ к к своему устройству злоумышленнику, или если этот же злоумышленник каким нибудь образом взломал устройство пользователя. Но это уже не ваши проблемы, это проблемы пользователя, так что сохраняйте в куках с флагами httpOnly, secure и не переживайте.