express的multer如何添加用户鉴权?

1、需要做个用户文件上传的接口,接收用户文件前需要判断是否登录

2、使用multer


const multer  = require('multer');

const upload = multer({ dest: 'uploads/' });


const router = express.Router();


router.post('/upload', authCheck.checkLogin, upload.single('avatar'), UserFile.uploadFile)


export default router

其中authCheck.checkLogin是检测用户登录的中间件,如果已登录,返回userid

UserFile.uploadFile是上传成功后的返回处理


3、结果:上传文件失败,返回


<html>

    <head>

        <meta charset="utf-8">

        <title>Error</title>

    </head>

    <body>

        <pre>10000</pre>

    </body>

</html>

10000是userid


4、请问要实现鉴权再上传应该怎么去做呢

找到一些资料,https://github.com/expressjs/...



慕仙森
浏览 482回答 1
1回答

慕标5832272

function checkLogin(req, res, next) {&nbsp; // 判断是否登录,可以通过cookie/session或jwt&nbsp; if (req.get('Authoriztion') === 'valid-token') {&nbsp; &nbsp; // 保存登录信息到req中供之后调用&nbsp; &nbsp; req.userid = 1000;&nbsp; &nbsp; // 透传到下一个中间件, 必须&nbsp; &nbsp; next();&nbsp; } else {&nbsp; &nbsp; // 登录失败,直接返回错误响应&nbsp; &nbsp; res.status(403).end();&nbsp; }}&nbsp;router.post('/profile', checkLogin, upload.single('avatar'), function (req, res, next) {&nbsp; console.log(req.userid); // 1000&nbsp; console.log(req.file); // 上传的文件&nbsp; console.log(req.body); // 其它字段});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript