Использование AWS Cognito для создания нового пользователя с Serverless Framework - PullRequest
0 голосов
/ 22 января 2019

Я очень новичок в AWS.Я пытаюсь использовать Serverless и Cognito для регистрации нового пользователя.Я использую Apollo / GraphQL (и я вижу всю информацию, которую я хочу от внешнего интерфейса), но у меня есть все жестко запрограммировано, чтобы устранить любые ошибки запроса.Что касается меня, я не могу понять, почему я не могу зарегистрировать нового пользователя:


const { ApolloServer, gql } = require('apollo-server-lambda');
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
global.fetch = require('node-fetch');

const USER_POOL_ID = 'us-east-1_XXXXXXXXX';
const USER_POOL_APP_ID = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';

const POOL_PARAMS = {
  UserPoolId: USER_POOL_ID,
  ClientId: USER_POOL_APP_ID
}

const UserPool = new AmazonCognitoIdentity.CognitoUserPool(POOL_PARAMS);


const typeDefs = gql`
  type UserSignup {
    email: String!
    name: String!
    password: String!
  }

  type Mutation {
    signup(email: String!, name: String!, password: String!): UserSignup
  }
`;

const resolvers = {
  Mutation: {
    signup: (parentVal, { email, name, password }) => {

      console.log('I can alway see this log');

      const attributeList = [];
      const attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute({ Name: 'email', Value: 'email@email.com' });
      const attributeName = new AmazonCognitoIdentity.CognitoUserAttribute({ Name: 'name', Value: 'mike' });
      attributeList.push(attributeEmail);
      attributeList.push(attributeName);

      console.log('I can see these too ', attributeList);
      console.log('This will return a function ', UserPool.signUp);

      UserPool.signUp('email@email.com', 'P@ssw0rd!', attributeList, null, function(poolErr, poolResult) {
        console.log('I never see a console.log from in here');
        if (poolErr) {
          console.log('ERROR: ', poolErr);
        }
        console.log('RESULT: ', poolResult);
        return { email, name };
      })
    }
  }
};

const server = new ApolloServer({ typeDefs, resolvers });

exports.graphql = server.createHandler();

Когда я запускаю свой sls logs, я никогда не вижу ничего возвращающегося внутри моего UserPool.signUp функция.Это всегда на линии прямо перед.Вот посмотрите на мой serverless.yml файл, который я получил от этого ТАК сообщения .

service: AppName

provider:
  name: aws
  runtime: nodejs8.10

functions:
  graphql:
    handler: handler.graphql
    events:
      - http:
          path: graphql
          method: post
          cors: true
          integration: lambda
          authorizer:
            name: authorizer
            arn: arn:aws:cognito-idp:us-east-1:XXXXXXXXXXXX:userpool/us-east-1_XXXXXXXXX
            claims:
              - email

Мне удалось создать нового пользователя с помощью запроса скручивания, поэтому я знаю, что он настроен прямо на стороне AWS.Прошло уже несколько ночей, и я собираюсь отказаться от Cognito и поехать с JWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...