2017-03-23 3 views
0

Ich möchte eine Funktion in meiner Anwendung, mit der Benutzer Bitbucket autorisieren können. Ich habe https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html gefolgt.Bitbucket OAuth2 mit Node.js

Folgende Arbeiten und bringt die Bitbucket Genehmigung Bildschirme wie erwartet: https://bitbucket.org/site/oauth2/authorize?client_id= {client_id} & response_type = Code

Allerdings setzt dieser Teil einen Fehler über ungültige Grant.

$ curl -X POST -u "client_id:secret" \ 
    https://bitbucket.org/site/oauth2/access_token \ 
    -d grant_type=authorization_code -d code={code} 

Ich verwende request Modul in Node.js und mit dem Code wie folgt:

request.post(
    'https://bitbucket.org/site/oauth2/access_token', 
    { 
    json: { 
     client_id: config.get('app.bitbucket_client_id'), 
     client_secret: config.get('app.bitbucket_client_secret'), 
     code: req.query.code, 
     grant_type: "authorization_code" 
     } 
     }, function (error, response, body) {  
     // Do something here 
     } 
    } 

{ "result": { "ERROR_DESCRIPTION": "Nicht unterstützte Erteilungstyp: keine", "error ":" invalid_grant "}}

Bitte Beratung!

+1

ist nicht der Fehler, dass Sie nicht den Parameter grant_type in Ihrer Anfrage JSON enthalten? –

+0

Was sollte es sein? Wenn ich hinzufügen grant_type: "authorization_code" es klagt ... { "Ergebnis": { "ERROR_DESCRIPTION": "Nicht unterstützte Zuschuss Typ: Keine", "Fehler": "invalid_grant"}} –

+0

@RickLee Ich habe versucht, das Hinzufügen grant_type, aber das Problem bleibt bestehen. –

Antwort

1

Die Antwort auf meine Frage gefunden. Grundsätzlich erwartet Bitbucket, dass Daten statt JSON direkt im Text gesendet werden. Das Ändern von json zu form in dem obigen Code reparierte es für mich.