Привет, можно ли скрыть кнопку, когда пользователь выходит из системы или когда пользователь входит в систему, кнопка будет отображаться? Я ищу в Google, там много упоминаний об этом. Используете пхп?
Спасибо, есть ли какой-нибудь сценарий, который я могу прочитать, или код?
Проверьте, вошел ли пользователь в систему или не использует if/else, и это должно быть легко. Мы не знаем вашего кода, поэтому не можем дать вам более подробный ответ.
Если вы используете nodejs, вы можете использовать экспресс-сеанс: (https://www.tutorialspoint.com/expressjs/expressjs_sessions.htm) Там вы добавляете информацию о своем сеансе, например. res.locals = {логин: правда} Затем на стороне клиента вы можете сделать так, чтобы кнопка отображала либо вход в систему, либо выход из системы в соответствии со значением.
Другой вариант — использовать «ejs» для «handlebars» и отправлять информацию на ваши клиентские страницы независимо от того, видят ли они вход в систему или выход из нее. (https://ejs.co ) - ( https://handlebarsjs.com)
Пример использования сессий: В вашей части маршрутов вы помещаете что-то вроде этого:
//Login user
router.post('/login', redirectHome, async (req, res) => {
try {
const user = await User.findByCredentials(req.body.email, req.body.password)
req.session.userId = user._id
return res.status(200).redirect('/home')
} catch (e) {
res.render('login' ,{ title: 'Login', alert:{title: 'Login failed!', type: 'alert-danger', message: e } })
}
})
router.post('/logout', redirectLogin, async (req, res) => {
try {
await req.session.destroy()
await res.clearCookie('sid')
await res.redirect('/login')
} catch (e) {
res.render('home', { title:'Home', alert:{ type: 'alert-warning', title:'Unable to logout', message: e}})
}
})
Затем на ваш сервер вы добавляете промежуточное ПО следующим образом:
app.use(async (req, res, next)=> {
const { userId } = req.session
if (userId){
res.locals.user = await User.findOne({_id:userId})
}
next()
})
Теперь вы можете отправлять информацию на своем маршруте, поэтому, если на стороне клиента userId не определен, вы показываете логин, если он имеет значение, вы показываете выход из системы.
Надеюсь, это помогло.
Ответ: ДА (вы спросили - возможно ли это)