Я в отчаянии, застрял на этом в течение нескольких дней ... Я новичок в Node / JWT, и я не могу найти какое-либо руководство, которое соответствует моим потребностям, я был бы рад заплатить, если я решу этовопрос.
Я пытаюсь получить доступ к защищенному маршруту '/ users / me', который выглядит следующим образом:
На GETЗапрашиваемое промежуточное программное обеспечение аутентификации отключается, и оно выглядит следующим образом:
const jwt = require('jsonwebtoken')
const User = require('../models/userModel')
const auth = async (req, res, next) => {
try {
const token = req.header('Authorization').replace('Bearer ', '')
const decoded = jwt.verify(token, 'secretWasUsed')
const user = await User.findOne({ _id: decoded._id, 'tokens.token': token })
if (!user) throw new Error()
req.token = token
req.user = user
next()
} catch (error) {
res.status(401).send({
error: 'Please authenticate ' + error,
})
}
}
module.exports = auth
WebController.getMe возвращает res.json(req.token)
Код на внешнем интерфейсе
document.querySelector('#myProfile').addEventListener('click', () => {
http.getAuth('/users/me')
})
GET AUTH is defined in the other class (its imported on the top)
getAuth(url) {
fetch(url, {
method: 'GET',
headers: {
'Authorization': window.localStorage.getItem('token')
}
}).then(response => {
if (response.status === 200) {
return response.json()
} else {
throw new Error('There was an error in Authentication!')
}
}).then(json => {
return console.log(json)
})
.catch(err => console.log(err))
}
ЦЕЛЬ: Передать промежуточное программное обеспечение аутентификации и перенаправить в / users / me. РЕАЛЬНОСТЬ: Я не передаю промежуточное ПО аутентификации, но получаю токен. GITHUB: https://github.com/Elvis339/ActiveCollab-Superhero
Лучше всего, если вы загрузите проект, создайте пользователя через почтальона по этому URL http://localhost:3000/
{
"name": "test",
"email": "test@gmail.com",
"password": "test"
}
Вход> Мой профиль (это где дерьмо случается)