2017-01-18 10 views
2

Ich arbeite mit der Lyft API und versuche herauszufinden, wie man ein Zugriffs-Token mit Axios mit einem Node-Skript bekommt.Zugriffstoken mit Axios erhalten

Ich kann manuell ein Zugriffstoken erhalten, indem Postman mit durch die Form wie folgt ausfüllen:

Getting token inside of Postman

Wenn ich das Formular ausfüllen, kann ich erfolgreich ein neues Token aus Lyft bekommen.

Ich versuche, diese in eine POST-Anforderung, indem Sie diese mit axios zu übersetzen:

var axios = require('axios'); 
var data = { 
"grant_type": "client_credentials", 
"scope": "public", 
"client_id": "vaf7vX0LpsL5", 
"client_secret": "pVEosNa5TuK2x7UBG_ZlONonDsgJc3L1" 
}; 
var url = "https://api.lyft.com/oauth/token"; 
    return axios.post(url, data) 
    .then(function(response){ 
     console.log(response.data) 
    }) 
    .catch(function (error) { 
     console.log(error); 
    }); 

Als ich das Skript ausführen, bekomme ich diesen Fehler:

{ error_description: 'Unauthorized', error: 'invalid_client' } 

Was bin ich fehlt von meiner axios Anfrage? Jede Hilfe wäre willkommen!

Antwort

4

Gemäß den Dokumenten von Lyft (https://developer.lyft.com/docs/authentication) müssen Sie HTTP Basic auth.

var axios = require("axios"); 

axios.request({ 
    url: "/oauth/token", 
    method: "post", 
    baseURL: "https://api.lyft.com/", 
    auth: { 
    username: "vaf7vX0LpsL5", 
    password: "pVEosNa5TuK2x7UBG_ZlONonDsgJc3L1" 
    }, 
    data: { 
    "grant_type": "client_credentials", 
    "scope": "public"  
    } 
}).then(function(res) { 
    console.log(res); 
}); 

Glücklich Codierung :)

! Wichtig!
Ich empfehle Ihnen dringend, Ihre secret_id und client_secret so bald wie möglich zu ändern, denn sie sind nicht die Dinge, die öffentlich sein sollen, wenn Sie sie für ein wichtiges Projekt oder etwas ähnliches verwenden.

+1

Danke, es hat funktioniert! Außerdem habe ich nur die Anmeldedaten aktualisiert, danke für den Sicherheitshinweis – Mike

Verwandte Themen