Node.js使用passport-local在Postman中成功運行,但在Vue.js前端中出現問題
P粉170858678
2023-08-30 12:18:47
<p>我正在使用passport-local進行使用者驗證。當我嘗試取得已登入使用者時,在postman中可以正常運作,但會顯示我設定的錯誤訊息「您需要先登入才能取得資料」。我的用戶可以成功從vue js登錄,但當我嘗試取得已登入用戶時,會顯示我的錯誤訊息。 </p>
<p>這是我的路線:</p>
<pre class="brush:php;toolbar:false;">router.get('/jobs', auth ,async(req, res) => {
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>
如果您使用令牌,您需要在請求中傳遞它,就像這樣:
在Postman中查看您發送的標題。
編輯:新增了圖片
#