Node.js使用passport-local在Postman中成功运行,但在Vue.js前端中出现问题
P粉170858678
P粉170858678 2023-08-30 12:18:47
[Vue.js讨论组]
<p>我正在使用passport-local进行用户身份验证。当我尝试获取已登录用户时,在postman中可以正常工作,但会显示我设置的错误消息“您需要先登录才能获取数据”。我的用户可以成功从vue js登录,但当我尝试获取已登录用户时,会显示我的错误消息。</p> <p>这是我的路由:</p> <pre class="brush:php;toolbar:false;">router.get('/jobs', auth ,async(req, res) =&gt; { const jobs = await Job.find({}).sort({ createdAt : -1 }) console.log(req.user)//这在postman中可以工作,但在vue js中会出错 res.send(jobs) })</pre> <p>我正在使用cors,并指定origin并将credentials设置为true。</p> <p>这是我的前端请求:</p> <pre class="brush:php;toolbar:false;">try{ const res = await axios.get('http://localhost:3000/jobs', { withCredentials : true }) this.jobs = await res.data console.log(this.jobs) // 即使我已登录,它也会显示我的错误消息 }catch(error) { if(error.response) { this.message = error.response.data } }</pre></p>
P粉170858678
P粉170858678

全部回复(1)
P粉197639753

如果您使用令牌,您需要在请求中传递它,就像这样:

const config = {
      withCredentials : true,
      headers: { 
        Token: user.value.token 
      },
    };

     try{ 
          const res = await axios.get('http://localhost:3000/jobs', config)

          this.jobs = await res.data
          console.log(this.jobs) // 即使我已经登录,它也会给我错误消息
        }catch(error) {
           if(error.response) {
               this.message = error.response.data
           }
        }

在Postman中查看您发送的标题。

编辑:添加了图片

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号