AWS CognitoIdentityServiceProvider 的问题
Trouble with AWS CognitoIdentityServiceProvider
我正在尝试通过 AWS CognitoIdentityServiceProvider 调用 adminGetUser 函数。初始化对我来说很好,但我收到以下错误。
[Nest] 43 - 03/29/2022, 9:18:43 AM ERROR [ExceptionHandler] Cannot read properties of undefined (reading 'CognitoIdentityServiceProvider')
TypeError: Cannot read properties of undefined (reading 'CognitoIdentityServiceProvider')
at new UsersService (/usr/src/app/src/users/users.service.ts:21:36)
at Injector.instantiateClass (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:301:19)
at callback (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:48:41)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Injector.resolveConstructorParams (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:124:24)
at Injector.loadInstance (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:52:9)
at Injector.loadProvider (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:74:9)
at async Promise.all (index 3)
at InstanceLoader.createInstancesOfProviders (/usr/src/app/node_modules/@nestjs/core/injector/instance-loader.js:44:9)
at /usr/src/app/node_modules/@nestjs/core/injector/instance-loader.js:29:13
遵循此代码:
import AWS from 'aws-sdk';
import { Injectable } from '@nestjs/common';
import { Repository } from 'typeorm';
import { User } from 'models/user.entity';
import { CreateUserDto } from './dto/create-user.dto';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UsersService {
config = {
apiVersion: '2016-04-18',
region: 'eu-central-1',
};
cognitoIdentity: AWS.CognitoIdentityServiceProvider;
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
) {
this.cognitoIdentity = new AWS.CognitoIdentityServiceProvider(this.config);
}
async findByCognitoSub(cognitoSub: string): Promise<User | undefined> {
const result = await this.usersRepository.find({ where: { cognitoSub } });
if (result.length !== 1) {
return undefined;
}
return result[0];
}
getUser(userPoolId: string, userName: string) {
return this.cognitoIdentity.adminGetUser({
UserPoolId: userPoolId,
Username: userName,
});
}
如有任何帮助,我们将不胜感激!
我不知道为什么会这样。
我一直在导入 AWS
import AWS from 'aws-sdk';
最终我设法通过导入
让它工作
import * as AWS from 'aws-sdk';
我正在尝试通过 AWS CognitoIdentityServiceProvider 调用 adminGetUser 函数。初始化对我来说很好,但我收到以下错误。
[Nest] 43 - 03/29/2022, 9:18:43 AM ERROR [ExceptionHandler] Cannot read properties of undefined (reading 'CognitoIdentityServiceProvider')
TypeError: Cannot read properties of undefined (reading 'CognitoIdentityServiceProvider')
at new UsersService (/usr/src/app/src/users/users.service.ts:21:36)
at Injector.instantiateClass (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:301:19)
at callback (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:48:41)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Injector.resolveConstructorParams (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:124:24)
at Injector.loadInstance (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:52:9)
at Injector.loadProvider (/usr/src/app/node_modules/@nestjs/core/injector/injector.js:74:9)
at async Promise.all (index 3)
at InstanceLoader.createInstancesOfProviders (/usr/src/app/node_modules/@nestjs/core/injector/instance-loader.js:44:9)
at /usr/src/app/node_modules/@nestjs/core/injector/instance-loader.js:29:13
遵循此代码:
import AWS from 'aws-sdk';
import { Injectable } from '@nestjs/common';
import { Repository } from 'typeorm';
import { User } from 'models/user.entity';
import { CreateUserDto } from './dto/create-user.dto';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UsersService {
config = {
apiVersion: '2016-04-18',
region: 'eu-central-1',
};
cognitoIdentity: AWS.CognitoIdentityServiceProvider;
constructor(
@InjectRepository(User)
private usersRepository: Repository<User>,
) {
this.cognitoIdentity = new AWS.CognitoIdentityServiceProvider(this.config);
}
async findByCognitoSub(cognitoSub: string): Promise<User | undefined> {
const result = await this.usersRepository.find({ where: { cognitoSub } });
if (result.length !== 1) {
return undefined;
}
return result[0];
}
getUser(userPoolId: string, userName: string) {
return this.cognitoIdentity.adminGetUser({
UserPoolId: userPoolId,
Username: userName,
});
}
如有任何帮助,我们将不胜感激!
我不知道为什么会这样。
我一直在导入 AWSimport AWS from 'aws-sdk';
最终我设法通过导入
让它工作import * as AWS from 'aws-sdk';