@Night_Harpy

Почему не генерируется токен?

Сервисы:
addUser = async (body) => {
    const user = new User(body);
    await user.save();
    if (!(await fs.pathExists(`public/images/users/${user._id}`))) {
      await fs.ensureDir(`public/images/users/${user._id}`);
    }
    const token = await user.generateAuthToken();
    console.log(token)
    return { ...user, token };
  };

Схема для генерации токена:
const userSchema = new mongoose.Schema({
    login: {
        type: String,
        unique: true,
        required: true,
        trim: true
    },
    firstName: {
        type: String
    },
    lastName: {
        type: String
    },
    email: {
        type: String
    },
    password: {
        type: String,
        required: true,
        minlength: 3,
        trim: true,
        validate(value) {
            if (value.toLowerCase().includes('password')){
                throw new Error('Password cannot contain "password"');
            }
        }
    },
    avatar: {
        type: String
    },
    role: {
        type: String,
        default: 'user'
    },
    tokens: [
        {
            token: {
                type: String,
                required: true
            }
        }
    ]    
});

userSchema.methods.generateAuthToken = async function() {
    const user = this;
    const token = jwt.sign({ _id: user._id.toString() }, process.env.KeyWord);
    user.tokens = await user.tokens.concat({ token });
    user.save();
    return token;
};

 const User = mongoose.model("Users", userSchema);

запись в бд добавляется, но без токена, токен в принципе не генерируется. В чём проблема может быть?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы