Я следую учебному пособию по созданию приложения для входа в систему с полным стеком, используя vue. js в клиентской части, express в серверной части и mongodb, когда я регистрирую нового пользователя и регистрируюсь приложение работает с данными электронной почты и паролем, но когда я ввожу данные, не найденные в базе данных, приложение ведет себя как зарегистрированный пользователь, переходит на страницу профиля и показывает кнопку «Выйти». вот скрипт моего логина. vue компонент
<script>
import axios from 'axios'
import router from '../router'
import EventBus from './EventBus'
export default {
data () {
return {
email: '',
password: ''
}
},
methods: {
login () {
axios.post('users/login', {
email: this.email,
password: this.password
}).then(res => {
localStorage.setItem('usertoken', res.data)
this.email = ''
this.password = ''
router.push({ name: 'Profile' })
this.emitMethod()
}).catch(err => {
console.log(err)
})
},
emitMethod () {
EventBus.$emit('logged-in', 'loggedin')
}
}
}
</script>
скрипт скрипта Navbar. vue compenent
<script>
import EventBus from './EventBus'
EventBus.$on('logged-in', test => {
console.log(test)
})
export default {
data () {
return {
auth: '',
user: ''
}
},
methods: {
logout () {
localStorage.removeItem('usertoken')
}
},
mounted () {
EventBus.$on('logged-in', status => {
this.auth = status
})
}
}
</script>
А вот функция обратного вызова для пользователей роутера
users.post('/login', (req, res) => {
User.findOne({
email: req.body.email
})
.then(user => {
if (user) {
if (bcrypt.compareSync(req.body.password, user.password)) {
const payload = {
_id: user._id,
first_name: user.first_name,
last_name: user.last_name,
email: user.email
}
let token = jwt.sign(payload, process.env.SECRET_KEY, {
expiresIn: 1440
})
res.send(token)
} else {
res.json({ error: 'User does not exist' })
}
} else {
res.json({ error: 'User does not exist' })
}
})
.catch(err => {
res.send('error: ' + err)
})
})
Я хочу остановить приложение, чтобы установить auth как 'loggedin' и отобразить сообщение об ошибке, если пользователь не зарегистрирован в базе данных
Вы не можете найти полное приложение по этой ссылке https://github.com/ArjunAranetaCodes/MoreCodes-Youtube/tree/master/mevn-mongodb-login-reg