FusionAuth sendSetPasswordEmail не отправляет Set Password Email при создании пользователя - PullRequest
0 голосов
/ 20 марта 2020

Я хочу создать пользователя без указания пароля, и FusionAuth отправит электронное письмо с паролем установки. Я использую клиентскую библиотеку PHP, и хотя я могу создать пользователя, электронное письмо не было отправлено. Однако отправка вручную сообщения об изменении пароля успешно доставлена.

Я настроил параметры SMTP для использования моей учетной записи Mailgun.

Вот что я отправляю через клиента;

$this->authClient->createUser(null, [
        'user' => [
            'active'               => true,
            'sendSetPasswordEmail' => true,
            'birthDate'            => '01/01/1990',
            'email'                => 'a.valid@email.co.uk',
            'firstName'            => 'John',
            'fullName'             => 'John Doe',
            'lastName'             => 'Doe',
            'middleName'           => '',
            'mobilePhone'          => +447777777777,
            'password'             => 'ForSomeReasonThisNEEDStoBeSet',
            'data'                 => [
                'identifier' => $someIdentifier
            ],
            'memberships'          => [
                ['groupId' => $myGroupId]
            ],
            'preferredLanguages'   => ['en'],
            'timezone'             => 'Europe/London',
            'twoFactorEnabled'     => false,
            'usernameStatus'       => 'ACTIVE',
            'username'             => $username,
            'verified'             => true
        ]
    ]);

Даже когда я передаю поле sendSetPasswordEmail, поле password все еще требуется, однако в документах предполагается, что это не так;

Это Поле является необязательным, только если для sendSetPasswordEmail установлено значение true. По умолчанию sendSetPasswordEmail имеет значение false, и тогда это поле будет обязательным.

Как я могу получить электронное письмо с настройкой пароля, которое будет отправлено при создании пользователя? Заранее спасибо

1 Ответ

2 голосов
/ 20 марта 2020

sendSetPasswordEmail - это значение верхнего уровня в запросе JSON. Вам нужно переместить его как родного брата к объекту user.

Пример:

$this->authClient->createUser(null, [
        'sendSetPasswordEmail' => true,
        'user' => [
            'active'               => true,
            'birthDate'            => '01/01/1990',
            'email'                => 'a.valid@email.co.uk',
            'firstName'            => 'John',
            'fullName'             => 'John Doe',
            'lastName'             => 'Doe',
            'middleName'           => '',
            'mobilePhone'          => +447777777777,
            'password'             => 'ForSomeReasonThisNEEDStoBeSet',
            'data'                 => [
                'identifier' => $someIdentifier
            ],
            'memberships'          => [
                ['groupId' => $myGroupId]
            ],
            'preferredLanguages'   => ['en'],
            'timezone'             => 'Europe/London',
            'twoFactorEnabled'     => false,
            'usernameStatus'       => 'ACTIVE',
            'username'             => $username,
            'verified'             => true
        ]
    ]);

Ссылка Создать пользовательский API

...