Фундаментальный вопрос более безопасен от чего?
Основная угроза - межсайтовый скриптинг (xss).В связи с этим cookie определенно более безопасен, если и только если он установлен как httpOnly.
Однако, если информация об аутентификации находится в cookie, подделка межсайтовых запросов (csrf) становится проблемой., и вы должны реализовать защиту CSRF.Не конец света, но вы должны заботиться об этом.Если вы храните токен аутентификации в localstorage и отправляете его в качестве заголовка, csrf не является проблемой.
Также файлы cookie с истекшим сроком действия (постоянные файлы cookie) часто сохраняются в незашифрованных файлах на клиенте, которые могут или могутне быть действительной угрозой в вашей модели угроз.
Короче говоря, это зависит.В целом, сохранение токена в httpOnly, безопасный cookie обычно считается наиболее безопасным, но это имеет последствия, как описано выше.Хранение токена в локальном хранилище также приемлемо в большинстве случаев.Тем более, что если вам нужно отправить токен нескольким бэкэндам (в разных источниках), вы не можете иметь его в cookie, потому что он будет отправлен только в его собственное начало.
Как всегда,дьявол в деталях (реализации).