Администраторы могут создавать пользователей из приложения Менеджера - я предполагаю, что они могут указать такие атрибуты, как имя, адрес электронной почты и т. Д. c.
Они могут попасть в поле настраиваемого действия или удаленной схемы (с соответствующими разрешениями и входом учетные данные), который выполняет аутентифицированный исходящий запрос для создания пользователя в Auth0 (POST / api / v2 / users), а затем обновляет ссылочную запись в Hasura DB с идентификатором auth0. В Hasura вы также можете сохранить роль вместе с адресом электронной почты, именем и т. Д. c.
Теперь, после того как пользователь зарегистрировался (установил свой пароль), он входит в систему, чтобы активировать настраиваемое правило.
Следуя этой документации , как и у вас, замените
// do some custom logic to decide allowed roles
на некоторый logi c, который делает запрос к вашей конечной точке Hasura и получает информацию о ролях и любые другие данные. на основе электронной почты пользователя, пытающегося войти в систему. Эти пользовательские c данные затем могут быть использованы для создания JWT. Вы можете нажать на Хасуру из правила Auth0 через HASURA_GRAPHQL_ADMIN_SECRET, хранящийся в настройках правила. Например,
const adminSecret = configuration.HASURA_GRAPHQL_ADMIN_SECRET
Если вы хотите, чтобы вход в систему работал в нескольких средах (особенно локальных), я думаю, вам нужно (а) открыть вашу локальную хасуру для inte rnet через что-то вроде ngrok и (2) передать пользовательские параметры в правило, чтобы контролировать его поведение, в частности, какую конечную точку Hasura оно затрагивает.
В Auth0 Context object вы можете передавать любые данные через параметры запроса во время входа в систему. Например:
const hasuraEndpoint = context.request.query.hasuraEndpoint
может использоваться в Правиле вместо статически определенной конечной точки.