質問編集履歴
6
解決したAmplifyのソースコードのリポジトリを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -389,6 +389,7 @@
|
|
389
389
|
拙い内容で恐縮ですが、どうぞよろしくお願いします。
|
390
390
|
|
391
391
|
# 追記
|
392
|
+
- https://github.com/kano1101/amplify-id-token
|
392
393
|
```tsx
|
393
394
|
let user = await Auth.signIn(username, password);
|
394
395
|
if (user.challengeName === "NEW_PASSWORD_REQUIRED") {
|
5
新パスワード要求に対するサインイン処理が間違えていたので修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -392,8 +392,7 @@
|
|
392
392
|
```tsx
|
393
393
|
let user = await Auth.signIn(username, password);
|
394
394
|
if (user.challengeName === "NEW_PASSWORD_REQUIRED") {
|
395
|
-
Auth.completeNewPassword(user, password);
|
395
|
+
user = await Auth.completeNewPassword(user, password);
|
396
|
-
user = await Auth.signIn(username, password);
|
397
396
|
}
|
398
397
|
const token = user.signInUserSession.idToken.jwtToken;
|
399
398
|
```
|
4
別解の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -376,22 +376,7 @@
|
|
376
376
|
srp: '1.0.0',
|
377
377
|
npm: '8.19.3',
|
378
378
|
node: '19.2.0',
|
379
|
-
v8: '10.8.168.20-node.8',
|
380
|
-
uv: '1.44.2',
|
381
|
-
zlib: '1.2.13',
|
382
|
-
brotli: '1.0.9',
|
383
|
-
ares: '1.18.1',
|
384
|
-
modules: '111',
|
385
|
-
nghttp2: '1.47.0',
|
386
|
-
napi: '8',
|
387
|
-
llhttp: '8.1.0',
|
388
|
-
openssl: '3.0.7+quic',
|
389
|
-
cldr: '42.0',
|
390
|
-
|
379
|
+
<中略>
|
391
|
-
tz: '2022f',
|
392
|
-
unicode: '15.0',
|
393
|
-
ngtcp2: '0.8.1',
|
394
|
-
nghttp3: '0.7.0'
|
395
380
|
}
|
396
381
|
% npx tsc -v
|
397
382
|
Version 5.0.4
|
@@ -402,3 +387,13 @@
|
|
402
387
|
この問題の解決手法、ご存知の方もしおられましたらご教示いただけると幸いです。
|
403
388
|
|
404
389
|
拙い内容で恐縮ですが、どうぞよろしくお願いします。
|
390
|
+
|
391
|
+
# 追記
|
392
|
+
```tsx
|
393
|
+
let user = await Auth.signIn(username, password);
|
394
|
+
if (user.challengeName === "NEW_PASSWORD_REQUIRED") {
|
395
|
+
Auth.completeNewPassword(user, password);
|
396
|
+
user = await Auth.signIn(username, password);
|
397
|
+
}
|
398
|
+
const token = user.signInUserSession.idToken.jwtToken;
|
399
|
+
```
|
3
GitHubコード追加、入力を環境変数から読み込むよう修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,9 +8,10 @@
|
|
8
8
|
ブラウザで実行時に、エラーが発生します。
|
9
9
|
|
10
10
|
コマンドライン上では動くのですが、ブラウザでは次のようなエラーメッセージが出ます。
|
11
|
+
|
11
|
-
|
12
|
+
作成しているソースコードはGitHubにアップしましたので、よろしければこちらもご確認お願いします。
|
12
|
-
|
13
|
+
|
13
|
-
|
14
|
+
- [ソースコードのリポジトリ](https://github.com/kano1101/srp)
|
14
15
|
|
15
16
|
### 発生している問題・エラーメッセージ
|
16
17
|
|
@@ -18,6 +19,7 @@
|
|
18
19
|
% rm -rf ./node_modules && npm install && npx tsc && http-server
|
19
20
|
```
|
20
21
|
上記実行後にブラウザ(Google Chrome)で`localhost:8080`にアクセスし、コンソールを確認するとこのようなエラーが出てしまいます。
|
22
|
+
このエラーを解消したいです。
|
21
23
|
```
|
22
24
|
Uncaught TypeError: Failed to resolve module specifier "@aws-sdk/client-cognito-identity-provider". Relative references must start with either "/", "./", or "../".
|
23
25
|
```
|
@@ -58,11 +60,14 @@
|
|
58
60
|
|
59
61
|
import { SecretsManagerClient, GetSecretValueCommand } from '@aws-sdk/client-secrets-manager';
|
60
62
|
|
63
|
+
// @ts-ignore
|
61
64
|
import { createHmac } from 'crypto';
|
62
65
|
|
63
66
|
const challengeResponse = async ({
|
64
|
-
username, password,
|
67
|
+
region, secretsManagerId, username, password,
|
65
68
|
}: {
|
69
|
+
region: string,
|
70
|
+
secretsManagerId: string,
|
66
71
|
username: string,
|
67
72
|
password: string
|
68
73
|
}) => {
|
@@ -71,9 +76,8 @@
|
|
71
76
|
const DateHelper = DateHelperWrapper.default;
|
72
77
|
const BigInteger = BigIntegerWrapper.default;
|
73
78
|
|
74
|
-
const REGION = 'ap-northeast-1';
|
75
|
-
const secretsManagerClient = new SecretsManagerClient({ region:
|
79
|
+
const secretsManagerClient = new SecretsManagerClient({ region: region });
|
76
|
-
const command = new GetSecretValueCommand({ SecretId:
|
80
|
+
const command = new GetSecretValueCommand({ SecretId: secretsManagerId });
|
77
81
|
|
78
82
|
const secretsManagerClientResponse = await secretsManagerClient.send(command);
|
79
83
|
|
@@ -146,7 +150,6 @@
|
|
146
150
|
secretHash: SECRET_HASH
|
147
151
|
});
|
148
152
|
|
149
|
-
|
150
153
|
const hkdfResult = {hkdf: undefined as undefined | string};
|
151
154
|
authenticationHelper.getPasswordAuthenticationKey(
|
152
155
|
USERNAME,
|
@@ -247,11 +250,15 @@
|
|
247
250
|
}
|
248
251
|
|
249
252
|
|
250
|
-
const
|
253
|
+
const REGION: string = process.env.REGION || 'missing region';
|
254
|
+
const SECRETS_MANAGER_ID: string = process.env.SECRETS_MANAGER_ID || 'missing secrets manager id';
|
251
|
-
const
|
255
|
+
const USERNAME: string = process.env.COGNITO_USERNAME || 'missing cognito username';
|
256
|
+
const PASSWORD: string = process.env.COGNITO_PASSWORD || 'missing cognito password';
|
252
257
|
console.log(await challengeResponse({
|
258
|
+
region: REGION,
|
259
|
+
secretsManagerId: SECRETS_MANAGER_ID,
|
253
|
-
username,
|
260
|
+
username: USERNAME,
|
254
|
-
password,
|
261
|
+
password: PASSWORD,
|
255
262
|
}));
|
256
263
|
```
|
257
264
|
|
2
タイトルの修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【TypeScript】
|
1
|
+
【TypeScript】ブラウザで実行する際のモジュールのインポート方法
|
test
CHANGED
File without changes
|
1
タイトル修正とソースコード追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【TypeScript】
|
1
|
+
【TypeScript】@(アットマーク)始まりのモジュールのインポートがうまくいかない
|
test
CHANGED
@@ -24,6 +24,19 @@
|
|
24
24
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-25/3b8db84f-cb6d-4c51-8fa9-77d8b0b1c930.png)
|
25
25
|
|
26
26
|
### 該当のソースコード
|
27
|
+
|
28
|
+
#### index.html
|
29
|
+
```html
|
30
|
+
<!DOCTYPE html>
|
31
|
+
<html>
|
32
|
+
<head>
|
33
|
+
<meta charset="UTF-8">
|
34
|
+
</head>
|
35
|
+
<body>
|
36
|
+
<script src="./dist/index.js"></script>
|
37
|
+
</body>
|
38
|
+
</html>
|
39
|
+
```
|
27
40
|
|
28
41
|
#### index.ts
|
29
42
|
```ts
|