Как правильно интегрировать password-js с apollo-сервером?

#apollo #apollo-server #meteor-accounts

Вопрос:

Я пытаюсь интегрировать account-js с apollo-сервером. После того, как я написал все свои коды, я увидел все автоматически сгенерированные мутации и запросы в схеме. Но если я хочу создать нового пользователя, распознаватель CreateUser возвращает:

 {
  "data": {
    "createUser": {
      "userId": null,
      "loginResult": null
    }
  }
}
 

Он создает пользователя в БД, но ничего не возвращает. Я видел запись в бд. И я попытался войти в систему с этим пользователем, но получил «сообщение»: «У пользователя нет установленного пароля». Я действительно не понимаю, в чем проблема, потому что я следил за статьей, которая находится в блоге apollo.

Ссылка: https://www.apollographql.com/blog/email-password-authentication-with-accounts-js-and-apollo-server/

Также я хотел создать пользователя со строковым идентификатором вместо идентификатора объекта. Учетные записи-документ js говорит, что я должен передать опцию «convertUserIdToMongoObjectId: false». Я сделал это, но это тоже не сработало. Я действительно застрял.

Вот моя настройка:

 
const accountsJsInıtializer = ({ mongoConnection }) => {
  const accountsPassword = new AccountsPassword()

  const accountsMongo = new Mongo(mongoConnection,{
    convertUserIdToMongoObjectId: false,
    dateProvider: (date) => date ? date.toISOString() : new Date().toISOString()
  })

  const accountsServer = new AccountsServer(
    {
      db: accountsMongo,
      tokenSecret: 'secret-token',
    },
    {
      password: accountsPassword
    }
  )

  return AccountsModule.forRoot({ accountsServer })
}


const apolloLoader = ({ expressApp, mongoConnection }) => {
  const accountsGraphQL = accountsJsInıtializer({ mongoConnection })

  const schema = makeExecutableSchema({
    typeDefs: mergeTypeDefs([typeDefs, accountsGraphQL.typeDefs]),
    resolvers: mergeResolvers([accountsGraphQL.resolvers,resolvers]),
    schemaDirectives: {
      ...accountsGraphQL.schemaDirectives
    }
  })

  const schemaMiddleware = applyMiddleware(schema)

  const apollo = new ApolloServer({
    schema: schemaMiddleware,
    context: accountsGraphQL.context,
  })

  apollo.applyMiddleware({ app: expressApp, path: '/graphql' })

  return apollo
}