Можно ли сгенерировать имя пользователя с помощью лямбда-триггера PreSignUp_AdminCreateUser? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь сгенерировать username автоматически за кулисами, чтобы при регистрации пользователям просто нужно было указать свой номер телефона, который затем можно будет изменить без изменения имени пользователя (основного идентификатора).

Следовательно, я знаю, что это может быть сделано за кулисами в клиенте, но я смотрю на это с помощью лямбда-триггера в Cognito, а именно PreSignUp_AdminCreateUser источника триггера.Код работает хорошо, но я получаю сообщение об ошибке, что имя пользователя должно быть тем, которое было отправлено при вызове клиента на iOS .

Моя лямбда выглядит так:

"use strict";

exports.handler = function(event, context, callback) {
  if (event.triggerSource === "PreSignUp_SignUp") {
    // generate unique random username
    var username = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for (var i = 0; i < 16; i++) {
        username += possible.charAt(Math.floor(Math.random() * possible.length));
    }
    console.log("Generated a unique username: " + username);
    event.userName = username;
  }
  return callback(null, event);
};

Должно ли это быть возможным?Кто-нибудь делал что-то подобное для Cognito?

1 Ответ

0 голосов
/ 20 декабря 2018

Это невозможно.

Независимо от того, является ли источник триггера PreSignUp_SignUp или PreSignUp_AdminCreateUser, ответ на событие имеет только три логических параметра, а именно: autoConfirmUser, autoVerifyPhone и autoVerifyEmail.Таким образом, имя пользователя должно быть частью атрибутов пользователя в запросе события.

См. Параметры предварительной регистрации лямбда-триггера .

...