统一消息平台
统一消息平台
在线试用
统一消息平台
解决方案下载
统一消息平台
源码授权
统一消息平台
产品报价
25-10-29 06:38
小明:嘿,小李,我最近在做一个消息管理平台,但是登录功能一直不太顺利,你能帮我看看吗?
小李:当然可以。你用的是什么技术栈?
小明:后端是Node.js,前端用的是React,数据库是MongoDB。
小李:那我们可以先从登录接口开始。你需要一个POST接口来接收用户名和密码。
小明:好的,那代码应该怎么写呢?
小李:这里是一个简单的登录接口示例:
app.post('/login', async (req, res) => {
const { username, password } = req.body;
const user = await User.findOne({ username });
if (!user || !await bcrypt.compare(password, user.password)) {
return res.status(401).json({ error: 'Invalid credentials' });
}
const token = jwt.sign({ id: user._id }, process.env.JWT_SECRET, { expiresIn: '1h' });
res.json({ token });
});
小明:明白了,那前端怎么处理这个token呢?
小李:你可以将token存储在localStorage中,并在每次请求时添加到请求头中,例如:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
小明:这样就能实现用户登录后的权限控制了。

小李:没错,接下来你还需要考虑会话管理和安全问题,比如使用HTTPS和JWT的有效期设置。
小明:谢谢,这对我帮助很大!
小李:不客气,记得测试一下各种情况,确保系统的安全性。