6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS その2Advent Calendar 2020

Day 18

[JavaScript][aws-sdk] AWS Cognitoの招待メッセージを再送したい場合の対応

Last updated at Posted at 2020-12-17

はじめに

AWS Cognitoでは、管理者がユーザーアカウントを新規作成すると一時パスワードを発行し、ユーザーの初回ログイン時にパスワード変更をさせることができます。
(参考: Creating User Accounts as Administrator)

一時パスワードが記載された招待メッセージをSMSまたはEメールでユーザーに通知できるのですが、気づかぬ内にメールが迷惑メールとして扱われてしまうといったように招待メッセージの再送が必要になるケースがあります。

今回はこのユーザーアカウントを新規作成時の招待メッセージを再送する方法についてまとめました。

今回やりたいこと

管理者がユーザーアカウントを新規作成した際に送信される招待メッセージの再送

今回はJavaScriptでユーザーアカウントを招待メッセージの再送をしたいので、aws-sdkを利用します。(aws-cliでの対応はこちらをご参照ください)

対応方法

aws-sdkのCognitoIdentityServiceProvider.adminCreateUserを利用します。
こちらのapiはユーザープールに新規ユーザーを作成するときに利用されるのですが、paramのMessageActionRESENDを指定すると招待メッセージの再送が行えます。
(参考: CognitoIdentityServiceProvider.adminCreateUser)

サンプルコード

const params = {
  UserPoolId: userPoolId /* 必須 */,
  Username: userName, /* 必須 */
  DesiredDeliveryMediums: ['EMAIL'],/* 通知方法 */
  ForceAliasCreation: true,/* エイリアス利用時のみ必要 */
  MessageAction: 'RESEND', /* 再送のため'RESEND'にする */
  TemporaryPassword: password, /* 再発行時の一時パスワード */
};

try {
  const res = await cognitoServiceProvider.adminCreateUser(params).promise();
  return res;
} catch (err) {
  console.log(err, err.stack)
}

まとめ

ユーザーを作成するapiでparamを変更するだけで「メッセージの再送」と「一時パスワードの再発行」ができるというのに気づかず最初つまづいたのと、aws-sdkを利用した事例があまり見つからなかったので、今回の対応内容をまとめました。

同じような点でつまずいた方の助けになれば幸いです。

参考リンク

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?