Nouveau sur Loopback, j'ai essayé de créer une API simple avec un modèle utilisateur et un modèle todo.HasMany point d'entrée de relation non autorisé sur Loopback
Le modèle utilisateur, nommé Todoer, est basé sur le modèle utilisateur intégré. créer un todoer, login, déconnexion, etc fonctionne comme un charme. Le modèle Todo est basé sur PersistedModel sans ACL pour le moment.
J'ai fait une Appartient Pour relation de modèle Todo à Todoer modèle d'avoir une propriété. J'ai fait aussi un hasMany relation de Todoer à Todo pour être en mesure de récupérer tous les todos d'un utilisateur par l'intermédiaire du point final GET/Todoer/{id}/todos
Avec un todoer connecté Avec le bon jeton et l'id, je peux facilement avoir des réponses de points de terminaison Todoer réservés aux utilisateurs connectés, comme par exemple GET /Todoer/{id}
, donc je suis sûr que le mécanisme d'authentification fonctionne bien.
Mais chaque fois que je veux frapper GET /Todoer/{id}/todos
, j'obtiens seulement un message d'erreur indiquant que je ne suis pas autorisé. Je suis toujours sûr d'avoir donné le bon jeton et l'identifiant Todoer obtenu lors de la connexion.
Même si je fais un grand ACL disant OK à tout à tous sur le modèle Todoer, il arrive la même chose.
Qu'est-ce que j'ai manqué? Je ne peux pas le comprendre ...
Merci pour votre aide ...
Pouvez-vous partager vos listes de contrôle d'accès ou même les fichiers 'Todoer.json',' Todo.json' complets? Il semble bien sur une première vue. Lors de l'accès à un modèle associé, l'ACL active est toujours celle du modèle que vous appelez. Donc permettre à tous sur "Todoer" devrait ouvrir "Todo" complètement lié. –
Ok. Voici le todoer.json: '{name": "Todoer", ' ' "base": "Utilisateur", ' ' "idInjection": vrai, ' ' "options": {' ' "validateUpsert": true' '},' ' "propriétés": {},' ' "" validations: [],' ' "relations": {' ' "todos": {' ' "type":" hasMany "' ' "modèle": "Todo",' ' "foreignKey": "todoerId"' '}' '},' ' "acls": [' '{' '" accessType ":" * ",' '" principalType ":" ROLE ",' '" princ ipalId ": "tout le monde $",' ' "autorisation": "Allow"' ' }' ' ],' ' "méthodes": {}' ' }' – stefsouron
Et voici le todo.json: { "name": "Todo", "base": "PersistedModel", "idInjection": true, "options": { "validateUpsert": true }, "propriétés": { " texte ": { "type": "string", "nécessaire": true} , "done": { "type": "booléen", "par défaut": false } }, "validation": [], "relations": { "todoer": { "type": "belongsTo", "modèle": "Todoer", "foreignKey": " todoerId » }} , "acls": [], "méthodes": {}} – stefsouron