secretOrPrivateKey должен иметь значение - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь изучить nodejs и использую jwt для создания токена для пользователя.Но я получаю эту ошибку на моей стороне сервера: secretOrPrivateKey must have a value.Это много кода, поэтому я собираюсь дать то, что я считаю важным (дайте мне знать, если вам нужно что-то еще):

user.js:

const config = require('./../config/config').get(process.env.NODE_ENV);
...
userSchema.methods.generateToken = function(callback) {
    console.log(config.SECRET); // THIS IS UNDEFINED
    var token = jwt.sign(this._id.toHexString(), config.SECRET);

    this.token = token;
    this.save(function(err, user) {
        if (err) return callback(err);
        callback(null, user)
    });
}

server.js:

app.post('/api/login', (req, res) => {
    User.findOne({'email': req.body.email}, (err, user) => {
        ...    
        user.generateToken((err, user) => {
            if (err) return res.status(400).send(err);

            res.cookie('auth', user.token).json({
                isAuth: true,
                id: user._id
            })
        })
    })
})

config.js:

const config = {
    production: {
        SECRET: process.env.SECRET,
        DATABASE: process.env.MONGODB_URI
    },
    default: {
        SECRET: 'SUPER_SECRET-PASSWORD!123?',
        DATABASE: 'mongodb://localhost:27017/feedback'
    }
}

exports.get = function get(env) {
    return config[env] || config.default
}

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я думаю, что вы вызываете узел, вероятно, неправильно.Попробуйте узел server.js, и вы должны получить конфигурацию по умолчанию.Вы также можете поместить console.log в exports.get (), чтобы увидеть, что он отправляет как переменную среды.

0 голосов
/ 19 сентября 2018

Я думаю, у вас проблемы с вашим конфигом.Единственное, что вы экспортируете - это функция get.так что config.SECRET пуст.Вы должны написать config.get (). SECRET

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