Size: a a a

GraphQL — русскоговорящее сообщество

2018 June 26

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
const login = async (_, { email, password }, ctx, info) => {
 const user = await ctx.db.query.user({
   where: {
     email: email
   }
 })

 if (!user) {
   throw new Error(`No such user found for email or login`)
 }

 const valid = await bcrypt.compare(password, user.password)
 if (!valid) {
   throw new Error('Invalid password')
 }

 return {
   token: jwt.sign({ userId: user.id }, "bbapi"),
   user
 }
}
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
у меня просто несколько ролей
источник

AP

Alexander Podkidyshev in GraphQL — русскоговорящее сообщество
Приколисты (-:
источник

M

Maksim in GraphQL — русскоговорящее сообщество
хм, насколько я сейчас вижу - у тебя почти тот же самый код с гитхаба))
источник

M

Maksim in GraphQL — русскоговорящее сообщество
я у себя попробовал заюзать - нихуя не вышло
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
Maksim
хм, насколько я сейчас вижу - у тебя почти тот же самый код с гитхаба))
да, я нечего почти не менял
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
у меня все запустилось в с первого раза
источник

M

Maksim in GraphQL — русскоговорящее сообщество
Alexsandr Menshikov
const bcrypt = require('bcryptjs')
const jwt = require('jsonwebtoken')

const registerCustomer = async (_, { email, login, password }, ctx, info) => {
 const passwordHash = await bcrypt.hash(password, 10)
 const user = await ctx.db.mutation.createUser({
   data: {
     email,
     login,
     password: passwordHash
   }
 })

 return {
   token: jwt.sign({ userId: user.id }, "bbapi"),
   user
 }
}
а разве это не внутрь этого нужно?

const resolvers = {
 Mutation: {
...
   },
 }
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
Maksim
а разве это не внутрь этого нужно?

const resolvers = {
 Mutation: {
...
   },
 }
да
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
ты же мутацию делаешь
источник

M

Maksim in GraphQL — русскоговорящее сообщество
а можешь показать пример вызова мутации?
источник

M

Maksim in GraphQL — русскоговорящее сообщество
Alexsandr Menshikov
type Mutation {
 registerCustomer(email: String!, password: String!, login: String!): AuthPayload!
 registerOwner(email: String!, password: String!, login: String!): AuthPayload!
 login(email: String!, password: String!): AuthPayload!
}

type AuthPayload {
 token: String!
 user: User!
}
т.е. при регистрации ты передаешь только мыло, пароль и логин?
источник

AM

Alexsandr Menshikov in GraphQL — русскоговорящее сообщество
ага
источник

M

Maksim in GraphQL — русскоговорящее сообщество
ну у меня с моим кодом такая ошибка сейчас: secretOrPrivateKey must have a value
источник

M

Maksim in GraphQL — русскоговорящее сообщество
хотя я по сути тоже все так же копировал, просто под себя раскидал код чтобы структура такой же не была
источник

Ф

Фенька in GraphQL — русскоговорящее сообщество
Maksim
ну у меня с моим кодом такая ошибка сейчас: secretOrPrivateKey must have a value
Ну значит ты не отправляешь value, очевидно же
источник

M

Maksim in GraphQL — русскоговорящее сообщество
а лол, работает
источник

Ф

Фенька in GraphQL — русскоговорящее сообщество
Мутацию свою покажи
источник

M

Maksim in GraphQL — русскоговорящее сообщество
token: jwt.sign({ userId: user.id }, process.env.APP_SECRET),

здесь проблема process.env.APP_SECRET из .env не берет
источник

M

Maksim in GraphQL — русскоговорящее сообщество
попробовал передать рандомную строку вместо этого - сработало
источник