Drupal сохраняет хешированный пароль в базе данных, и это одностороннее шифрование, что означает, что вы не можете получить исходный пароль из него, в процессе аутентификации drupal кодирует входной пароль пользователем и проверяет, равен ли закодированный пароль паролю в базе данных и при встрече это условие, в монолитном проекте (не разделенном) он создает файл cookie с информацией о пользователе и отправляет его обратно в браузер, который будет храниться и использоваться для будущего использования.
Но при разработке развязанного подхода, такого как использование GraphQL, JsonAPI или Rest API, вы не всегда можете использовать cookie, потому что внешнее приложение может не поддерживать его (например, мобильное приложение Android или...), поэтому в этом случае лучше использовать токены для аутентификации, есть несколько модулей, одним из самых популярных является Простой OAuth (OAuth2) и OpenID Connect (СТАБИЛЬНЫЙ И ШИРОКО ИСПОЛЬЗУЕМЫЙ)
после настройки этого модуля (установка с использованием композитора, создание закрытого и открытого ключа и введение потребителей) вы можете просто получить токен, отправив запрос Post:
{SiteName}/oauth/токен
и в теле, которое должно быть типа multipart/form-data
(application/json не поддерживается) вы можете:
тип_гранта = пароль
client_id = ИДЕНТИФИКАТОР ПОТРЕБИТЕЛЯ, КОТОРЫЙ ВЫ МОЖЕТЕ СОЗДАТЬ ЧЕРЕЗ ИНТЕРФЕЙС
client_secret = ПОТРЕБИТЕЛЬСКИЙ ПАРОЛЬ (ЕСЛИ ВЫ УСТАНОВИЛИ)
имя пользователя = ИМЯ ПОЛЬЗОВАТЕЛЯ
пароль = ПАРОЛЬ
Scope = РОЛИ, КОТОРЫЕ ВЫ ХОТИТЕ ПОЛЬЗОВАТЕЛЮ ИМЕТЬ, КОТОРЫЕ НЕ ЗАПРЕЩЕНЫ В ПОТРЕБИТЕЛЕ (НЕ ПОВЛИЯЮТ, ЕСЛИ ПОЛЬЗОВАТЕЛЬ НЕ ИМЕЕТ ЭТОЙ РОЛИ, ТАК ЧТО НЕТ ПРОБЛЕМ БЕЗОПАСНОСТИ)
и все, вы получите токен доступа и обновления в ответ. который затем можно использовать в будущих запросах, вызывающих GraphQL или любые другие службы REST.
Одно важное замечание об этом модуле касается использования Scope, а именно: при представлении клиента вы можете назначить этому клиенту одну или несколько областей, и когда пользователь входит в систему через этот клиент, ему будут назначены все роли.