Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/heiwa4126/awssdkv3-sign-up

AWS SDK for JavaScript v3 の練習。Amazon Cognitoにユーザを追加する。
https://github.com/heiwa4126/awssdkv3-sign-up

aws-sdk-javascript-v3 example

Last synced: 5 days ago
JSON representation

AWS SDK for JavaScript v3 の練習。Amazon Cognitoにユーザを追加する。

Awesome Lists containing this project

README

        

# awssdkv3-sign-up

[AWS SDK for JavaScript v3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html)
の練習。

* username(=email)
* password
* given_name
* family_name

が必須の
Amazon Cognitoユーザプールに
ユーザを追加し、
メールアドレスを承認済みにする
スクリプト。

## 前提

* Node.js(v18)で作りました。
* 適切な権限を持ったAWSアカウントが設定されてるものとする。

## 動かし方

プロジェクトルートで
```bash
pnpm i
# or
npm i
```

した後
```bash
cp .env.example .env
vim .env
```
で環境設定して、

```bash
# commonJS version
node signup.cjs
# or (ES6 version)
node signup.mjs
# or (TypeScript version)
ts-node signup.ts
```
で実行。

- メール(=ユーザ名)は実在していなくてもいい(`[email protected]`など。`@`は要る)
- passwordはポリシーに従ったもの(「数字を含む」とかのアレ)を渡すこと。

## shell版

説明用に AWS CLI で書くとこんな感じ。

```bash
aws cognito-idp sign-up \
--client-id \
--username \
--password \
--user-attributes '[{"Name": "email", "Value": ""}]' \
--user-pool-id
```
(user-attributesはCognitoユーザープールの必須項目にあわせて追加)

これだとメールが「認証済み」にならない(email_verifiedがいっぺんに設定できない)ので、

```bash
aws cognito-idp admin-update-user-attributes \
--user-pool-id \
--username \
--user-attributes '[{"Name": "email_verified", "Value": "true"}]'
```

さらに
```bash
aws cognito-idp admin-confirm-sign-up
--user-pool-id \
--username
```

sign-up はアプリケーションクライアントIDが引数なのに、
admin-update-user-attributes, admin-confirm-sign-up はプールIDが引数。

## 感想

やっぱりNodejs入れて プロジェクト落として `npm i` は面倒。
あとでnpxできるようにする(またはGoかRustにする)。

TypeScript版がanyだらけで気持ちが悪い。
まあ作成中に補完が効くのはありがたい。