Я следую этому учебнику Робина Виеруха
При реализации регистрации пользователя с использованием jwt с GraphQL я не могу предоставить значения с помощью GraphQL Mutation
Server.js
const server = new ApolloServer({
typeDefs: gql(typeDefs),
resolvers,
context: { db },
secret: process.env.SECRET,
});
models / user.js
export default (sequelize, DataTypes) => {
const User = sequelize.define('user', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
username: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
},
password: {
type: DataTypes.STRING,
allowNull: false,
validate: {
notempty: true,
len: [8],
},
},
email: {
type: DataTypes.STRING,
unique: true,
allowNull: false,
validate:{
isEmail: true,
},
},
createdAt: {
},
createdAt: {
type: DataTypes.DATE,
allowNull: true
},
updatedAt: {
type: DataTypes.DATE,
allowNull: true
},
deleted_at: {
type: DataTypes.DATE,
allowNull: true
}
},
{
freezeTableName: true,
});
User.beforeCreate( async user => {
user.password = await user.generatePasswordHash();
});
User.prototype.generatePasswordHash = async function() {
const saltRounds = 10;
return await bcrypt.hash(this.password, saltRounds);
};
return User;
};
схема
type Mutation {
signUp(username: String!, email: String!, password: String!): Token!
}
type Token {
token: String!
}
распознаватели
signUp: async(
parent,
{ username, password, email},
{db, secret },) => {
const user = await db.user.create({
username,
password,
email,
});
return { token: createToken(user, secret, '30m')};
},
В настоящее время я застрял с мутацией GraphiQL ниже:
mutation($username: String!, $password: String!, $email: String!){
signUp(username: $username, password: $password, email: $email){
u
}
}
Как вы можете видеть, когда я набираю, я должен видеть, что имя пользователя, пароль и адрес электронной почты заполняются автоматически.Или, возможно, у меня неправильный формат мутаций.
Пожалуйста, исправьте, где я ошибаюсь.