[英]AWS SNS or SES for password reset
伙計們。 我的任務是創建 AWS lambda 端點以重置用戶密碼。 我必須向用戶 email 發送一個新密碼。我已經閱讀了很多關於 SNS 和 SES 的內容,目前不知道哪種服務更適合我的目的。 很高興收到您的建議!
這是我的 lambda 代碼
const requestData = AdminResetPasswordDto.from(event.body);
const errors = await AdminResetPasswordDto.validate(requestData);
if (errors) {
return new BadRequestError({ message: "errors.invalid-request-params", errors })
}
const repo = new UsersRepo();
const entity = await repo.getOneByEmail(requestData.email);
if (!entity) {
return new BadRequestError({ message: 'errors.user-not-exists' })
}
// const newPass = generatePassword();
// sending newPass to user via SNS
// use SNS or SES ???
// https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html
const user = UserDto.fromEntity(entity);
const result = await repo.updateUserPassword(user.userId, user.userRole, newPass);
if (!result) {
return new BadRequestError({ message: 'errors.password-not-updated' })
}
return new ResponseSuccessNoBody();
SNS 用於“技術”通知; 可以通過電子郵件發送,但數量有限。 首先,此時您需要創建專用訂閱並提供目標郵件地址。 其次,您無法真正“設計”您的消息,它只是一堆文本。 對於在運行時確定收件人並且希望控制消息布局的消息,您應該使用 SES go。
SES
旨在高效、安全地發送大量電子郵件。 一旦您確認您是電子郵件地址的所有者,您就可以通過 SES 向任何其他電子郵件地址發送電子郵件,而無需收件人的同意。 SES
負責確保電子郵件送達所需的工程。
SNS
是一種渠道發布者/訂閱者服務。 為了從SNS
接收電子郵件,最終用戶必須首先通過電子郵件訂閱並批准該訂閱,然后亞馬遜才能從訂閱的頻道向該最終用戶發送電子郵件。 最終用戶可以通過電子郵件、短信、網絡掛鈎和其他獨立於發布者的用戶方式進行訂閱。
在實際層面上,我們使用SES
向用戶發送有關其內容的電子郵件,並使用SNS
在服務器 go 出現故障或出現問題時向我們的開發人員發送通知(通過短信和電子郵件)。
簡而言之,
社交網站
email 條消息
短信
推送通知到移動設備
服務/應用程序之間的消息
客戶必須訂閱,才能收到上述通知
SES
email 條消息
無需訂閱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.