Node.js läuft erfolgreich in Postman mit Passport-Local, weist jedoch Probleme im Vue.js-Frontend auf
P粉170858678
P粉170858678 2023-08-30 12:18:47
0
1
414
<p>Ich verwende Passport-Local für die Benutzerauthentifizierung. Wenn ich versuche, den angemeldeten Benutzer abzurufen, funktioniert es in Postman einwandfrei, aber es wird die von mir festgelegte Fehlermeldung angezeigt: „Sie müssen zuerst angemeldet sein, um die Daten zu erhalten“. Meine Benutzer können sich erfolgreich über vue js anmelden, aber wenn ich versuche, den angemeldeten Benutzer abzurufen, wird meine Fehlermeldung angezeigt. </p> <p>Das ist meine Route: </p> <pre class="brush:php;toolbar:false;">router.get('/jobs', auth ,async(req, res) => { const jobs = waiting Job.find({}).sort({ erstellt um: -1 }) console.log(req.user)//Dies funktioniert in Postman, gibt aber einen Fehler in Vue js aus res.send(jobs) })</pre> <p>Ich verwende cors, gebe origin an und setze die Anmeldeinformationen auf true. </p> <p>Dies ist meine Frontend-Anfrage: </p> <pre class="brush:php;toolbar:false;">try{ const res = waiting axios.get('http://localhost:3000/jobs', { withCredentials: wahr }) this.jobs = warte auf res.data console.log(this.jobs) // Obwohl ich angemeldet bin, wird mir die Fehlermeldung angezeigt }catch(error) { if(error.response) { this.message = error.response.data } }</pre></p>
P粉170858678
P粉170858678

Antworte allen(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中查看您发送的标题。

编辑:添加了图片

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage