2017-08-22 1 views
1

Je suis nouveau sur Aqueduct et je suis confronté à une erreur client invalide chaque fois que j'essaie de faire une demande à la route /auth/token ou /auth/code. J'ai déjà ajouté le client OAuth2.0 et vérifié que le secret est correct. Ma demande à /auth/token ressemble à ceci:Exemple de client db_and_auth/wildfire non valide

Future main() async { 
    var http2 = new http.Client(); 
    var clientID = "com.wildfire.mobile"; 
    var clientSecret = "myspecialsecret "; 
    var body = "username=usr&password=pwd&grant_type=password"; 
    var clientCredentials = new Base64Encoder().convert(
     "$clientID:$clientSecret".codeUnits); 
    var response = await 
    http.post(
     "http://localhost:8081/auth/token", 
     headers: { 
     "Content-Type": "application/x-www-form-urlencoded", 
     "Authorization": "Basic $clientCredentials" 
     }, 
     body: body); 

Et quand je tente de vous connecter à /auth/code avec un nom d'utilisateur dans la base de données _utilisateur le serveur lance un 400:invalid_client

+1

Quelques points à vérifier: votre fichier de configuration pointe-t-il vers la bonne base de données? Avez-vous ajouté l'ID client et le secret via l'authentification CLI d'aqueduc? Aussi, il y a un canal Slack pour Aqueduct ici: http://aqueductsignup.herokuapp.com –

Répondre

0

Il était en effet un problème de mauvaise configuration. Après avoir supprimé toutes mes bases de données, j'ai ajouté un fichier database.yaml, que je pensais être le même que le config.yaml, mais apparemment ne l'est pas. Le database.yaml ressemble à ceci:

username: adan 
password: pass 
host: localhost 
port: 5432 
databaseName: wildfire_db 

alors que le config.yaml ressemble à ceci:

database: 
username: adan 
password: pass 
host: localhost 
port: 5432 
databaseName: wildfire_db 

J'ai aussi couru les commandes aqueduct auth et aqueduct db sans le drapeau --connect, soit en utilisant la fichiers de configuration.

+0

Heureux de l'entendre fonctionner. Pour plus de clarté, config.yaml est le nom par défaut du fichier de configuration pour votre application. Il peut contenir zéro, une ou plusieurs informations d'identification de base de données et il peut s'agir de commandes de niveau supérieur, imbriquées, etc. Les commandes CLI qui se connectent à une base de données utilisent l'option --connect pour fournir des informations d'identification de base de données. Pour plus de commodité, ces informations d'identification peuvent être placées dans un fichier database.yaml pour éviter d'avoir à les saisir au niveau de la CLI. Cependant, l'interface de ligne de commande ne comprendra pas les spécificités du fichier de configuration de votre application. –