#node.js #express
Вопрос:
Я пытаюсь использовать базовый модуль аутентификации в express.
Когда я задаю имя пользователя и пароль в тексте, это работает без проблем:
app.use(basicAuth({
users: { 'user': 'pass' },
unauthorizedResponse: getUnauthorizedResponse
}))
function getUnauthorizedResponse(req) {
console.log(typeof req.auth)
return req.auth
? ('Credentials ' req.auth.user ':' req.auth.password ' rejected')
: 'No credentials provided'
}
Но замените жестко заданное значение переменной, я постоянно получаю «Отклоненные учетные данные».
var user = config["loginUsename"];
var pass = config["loginPassword"];
app.use(basicAuth({
users: { user: pass },
unauthorizedResponse: getUnauthorizedResponse
}))
function getUnauthorizedResponse(req) {
console.log(typeof req.auth)
return req.auth
? ('Credentials ' req.auth.user ':' req.auth.password ' rejected')
: 'No credentials provided'
}
Я утешаю.зарегистрировал пользователя и передал переменные, учетные данные совпадают. Я вывожу объект req.auth, это те же учетные данные. Почему это не работает?
Ответ №1:
У вас опечатка. Этот:
app.use(basicAuth({
users: { user: pass },
unauthorizedResponse: getUnauthorizedResponse
}))
должно быть:
app.use(basicAuth({
users: { [user]: pass },
unauthorizedResponse: getUnauthorizedResponse
}))
Т. е. Ваше имя пользователя «пользователь» не соответствует вашей конфигурации.