Как я могу отправить сообщение электронной почты/активировать функцию лямбда при регистрации нового пользователя?отправлять электронную почту при регистрации пользователей - AWS Cognito federated Identities
Под «редактированием пула идентификаторов» я нашел только триггер синхронизации. Если я правильно понимаю: это срабатывает каждый раз, когда пользователь синхронизирует свои данные ...
Есть ли способ вызвать функцию лямбда только для «начальной» синхронизации или когда определенный набор данных создан для пользователя?
Edit:
Чтобы быть более конкретным: я создать пользователя с помощью лямбды с помощью JS SDK. Я использую аутентификацию разработчика с собственным потоком oauth2. Я не знаю, как различать пользователя, предоставляющего доступ, например. через Google в первый раз от кого-то, делающего это во второй раз. Json с кодом доступа шов же мне ... Может быть, я ошибаюсь.
Также с помощью вызова getOpenIdTokenForDeveloperIdentity
я не знаю, как отличить ID от новичка от когнито от одного когнито уже знает.
Edit 2: Чтобы быть еще более точным: я строй на этом проекте: https://github.com/laardee/serverless-authentication-boilerplate/blob/master/authentication/lib/storage/usersStorage.js
вот как я могу сохранить Пользователь к Cognito в данный момент. Я запускаю этот код для пользователей в первый раз, а также пользователей nth time. Моя проблема заключается в том, что я не знаю, как отличить ...
const saveCognito = (profile) => new Promise((resolve, reject) => {
if (profile) {
cognitoidentity.getOpenIdTokenForDeveloperIdentity({
IdentityPoolId: process.env.COGNITO_IDENTITY_POOL_ID,
Logins: {
// profile.userId = encrypted id of the e.g. google oauth2 id
[process.env.COGNITO_PROVIDER_NAME]: profile.userId
}
}, (err, dat) => {
if (err) {
reject(err);
} else {
var list_params = {
DatasetName: 'user-data', /* dataset name */
IdentityId: dat.IdentityId, /* cognito id */
IdentityPoolId: process.env.COGNITO_IDENTITY_POOL_ID
};
cognitosync.listRecords(list_params, function(err, data) {
if (err) {
reject(err); // an error occurred
} else {
var RecordPatches = //[Parts of the i want to write to the user]
// SyncSessionToken is returned by the cognitosync.listRecords call
list_params["SyncSessionToken"] = data.SyncSessionToken;
list_params["RecordPatches"] = RecordPatches;
cognitosync.updateRecords(list_params, function(err, update_data) {
if (err){
reject(err);
} else {
resolve();
}
});
}
});
}
});
} else {
reject('Invalid profile');
}
});
Я предполагаю, что фактические пользователи создаются не с лямбды? – Erndob
@Erndob см. Мое редактирование/расширение для вопросов – Rentrop
Для создания пользователей у вас есть лямбда, которая добавляет их в пул, это отличает от входа в систему, не можете ли вы просто запустить отправку электронной почты лямбда из вашей регистрирующей лямбда? – Erndob