统一身份认证与商标下载功能的实现
小明:最近我们在开发一个商标管理平台,需要实现用户登录后才能下载商标文件。你有什么建议吗?
小李:我觉得应该先做统一身份认证,确保只有合法用户才能访问资源。
小明:那怎么实现呢?有没有具体的代码示例?
小李:我们可以使用OAuth2.0或者JWT来做统一身份认证。这里是一个简单的JWT验证示例:
// 生成Token
const jwt = require('jsonwebtoken');
const token = jwt.sign({ userId: '123' }, 'secretKey', { expiresIn: '1h' });
// 验证Token
function verifyToken(req, res, next) {
const token = req.headers['authorization'];
if (!token) return res.status(401).send('No token provided');
jwt.verify(token, 'secretKey', (err, decoded) => {
if (err) return res.status(401).send('Invalid token');
req.userId = decoded.userId;
next();
});
}
小明:明白了。那下载商标文件时,如何结合这个认证呢?
小李:可以在下载接口中加入认证中间件,例如:
app.get('/download/:id', verifyToken, (req, res) => {
const fileId = req.params.id;
// 根据userId和fileId查找商标文件并返回
res.download(`./files/${fileId}.pdf`);
});
小明:这样就能保证只有认证过的用户才能下载商标文件了。
小李:没错。同时,我们还可以在前端添加提示,让用户登录后再进行下载操作。
小明:好的,感谢你的帮助!
小李:不客气,有需要随时问我。
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!