Comment utiliser cURL pour s'authentifier sur l'application Rails qui utilise Concevoir?
Je veux tester mon rails de service web à l'aide de cURL, mais jusqu'à présent, je ne pouvais que le faire en désactivant before_filter :authenticate_user!
. Mais je tiens à vous connecter à priori, puis de créer, détruire, etc.
J'ai vu qu'avec cURL, vous pouvez authentifier et d'enregistrer les informations de session dans un cookie, que vous utilisez pour votre à la suite de demandes, mais je ne pouvais pas le faire fonctionner avec Concevoir: dans mon scénario, l'utilisateur se connecte à l'aide d'un e-mail/mot de passe, donc j'essaye:
curl \ -X POST \ -d '[email protected]&mot de passe=mot de passe' \ -c cookie \ http://localhost:3000/utilisateurs/sign_in >
et j'obtiens: ActionController::InvalidAuthenticityToken in Devise/sessionsController#create
Quelqu'un pourrait me donner une idée /un exemple?
Merci!
OriginalL'auteur Marius Butuc | 2011-01-12
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne:
Authentifier:
Spectacle:
C'est peut-être que vous avez besoin d'un jeton CSRF pour les non-demandes en Rails 3 (weblog.rubyonrails.org/2011/2/8/...)
L'authentification renforcé a fonctionné pour moi, après, j'ai changé les guillemets simples et doubles, mais n'a pas été en mesure d'accéder à quoi que ce soit.
Je suis à l'utilisation de memcached de sessions et il semble que les Rails n'est pas en renvoyant un id de session dans un cookie lorsque j'utilise le ci-dessus curl. Je peux dire que cela fonctionne si il y avait un témoin, mais qui n'est pas le cas. Quelqu'un a une expérience avec cela?
OriginalL'auteur Marius Butuc
C'est parce que les Rails par défaut ajoute une authenticité jeton de formes pour protéger contre les faux de paramètres. Comme vous ne fournissez pas ce jeton à votre demande, rails de ne pas l'accepter.
Vous pouvez contourner ce avec
dans votre contrôleur, où l'autorisation a lieu, mieux encore de limiter l'autorisation d'une action avec :seulement.
OriginalL'auteur needto
Avez-vous essayé quelque chose comme ça (pas testé):
OriginalL'auteur polarblau
Le suivant réponse de José Valim:
OriginalL'auteur Marius Butuc