【问题标题】:uploading files with multer after user is authenticated用户通过身份验证后使用 multer 上传文件
【发布时间】:2021-05-14 23:06:53
【问题描述】:

使用 multer,我可以从我的 reactjs 客户端成功地将任何类型的文件上传到我的 node.js 后端,并且我也可以创建一个用户。现在我正在尝试找出一种只允许经过身份验证的用户上传文件的方法。有谁知道任何可以帮助我弄清楚我需要做什么的资源?

【问题讨论】:

    标签: node.js reactjs multer


    【解决方案1】:

    您可以在上传路由上使用任何身份验证中间件。 例如。

     const upload = multer({ dest: 'uploads/' })
    
       const authentication = function (req, res, next) {
       // handle authentication
        if(authenticated) return next()
        next({error})
       })
    
    
       app.post('/profile', authentication, upload.single('avatar'),
       function (req, res, next) {
    
       })
    

    这将在 multer 处理请求之前验证请求

    【讨论】:

    • 如果我将我的 auth 中间件放在 multer 之前,那么我无法访问 req.body 如果我将 multer.single 放在 auth 之前,那么文件会在授权之前上传
    • 你是怎么解决这个问题的?我有确切的问题
    • 我也有@Harry_C
    【解决方案2】:

    对于那些没有获得 req.body 的人,您可以像这样使用标头传递您的令牌

    const options = {
        headers: {'jwt': sessionStorage.getItem("token")}
    };
    

    为了请求

    axios.post("http://xxx", your data, options)
    

    【讨论】:

      【解决方案3】:

      使用 mongodb 数据库对用户进行身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        • 2012-06-23
        • 2011-06-09
        • 2018-02-02
        • 1970-01-01
        • 2015-11-08
        相关资源
        最近更新 更多