Да, он должен быть уникальным.
HTML4:
http://www.w3.org/TR/html4/struct/global.html
Раздел 7.5.2:
id = name [CS] Этот атрибут присваивает имя элементу. Это имя должно быть уникальным в документе.
blockquote>HTML5:
http://www.w3.org/TR/html5/dom.html# the-id-attribute
Атрибут id указывает уникальный идентификатор его элемента (ID). Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать как минимум один символ. Значение не должно содержать пробелов.
blockquote>
Я бы сказал, что лучший и безопасный способ - обработать ваш POST-запрос, используя такую инфраструктуру, как hapi или express , если ваше приложение и graphql работают на том же сервере, что и вы. даже не нужно использовать graphql, вы можете вызвать свой метод, который будет обрабатывать пользовательские данные для аутентификации и т. д.