2017-08-14 2 views
0

J'ai un backend qui effectue l'authentification BASIC. Je passe le nom d'utilisateur/mot de passe codé en boucle comme suitEn-tête d'autorisation - Javascript Vuejs

curl -D- -X GET -H "Authorization: Basic cmFtcmFtOnBhc3N3b3Jk" -H "Content-Type: application/json" "http://localhost:9000/users/login" 

et il fonctionne très bien

Alors que dans vue.js en utilisant vue des ressources que je suis en train de faire la même chose en utilisant

var options = { 
     url: 'http://localhost:9000/users/login', 
     method: 'GET', 
     headers: 
     { 
      'Authorization': 'Basic cmFtcmFtOnBhc3N3b3Jk' 
     } 
    } 
    context.$http(options).then(res => { 
     if (res.ok) { 
     cb({ authenticated: true }) 
     } else { 
     cb({ authenticated: false }) 
     } 
    }) 

Mais il n'est pas authentifié. Les informations de demande que j'ai reçues de devtools sont les suivantes:

Accept:*/* 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-GB,en;q=0.8,fr;q=0.6,en-US;q=0.4 
Access-Control-Request-Headers:authorization 
Access-Control-Request-Method:GET 
Connection:keep-alive 
DNT:1 
Host:localhost:9000 
Origin:http://evil.com/ 
Referer:http://localhost:8080/Login 

Je ne vois pas les informations d'autorisation transmises au serveur. Est-ce que je fais quelque chose de mal ? Remarque: Le serveur et le client sont sur localhost.

Merci

Répondre

0

vue-resource est retired donc je ne pense pas que vous devriez l'utiliser plus. Au lieu de cela, que diriez-vous utiliser fetch à la place comme suggéré et voir si cela fonctionne:

fetch('http://localhost:9000/users/login', { 
    method: 'POST', 
    headers: new Headers({ 
     'Authorization: Basic cmFtcmFtOnBhc3N3b3Jk', 
     'Content-Type': 'application/json' 
    }), 
    body: JSON.stringify(req.body.payload) 
})