Authentification HTTP dans un bookmarklet Firefox 3
-
08-06-2019 - |
Question
J'essaie de créer un bookmarklet pour publier des signets del.icio.us sur un compte distinct.
Je l'ai testé depuis la ligne de commande comme :
wget -O - --no-check-certificate \
"https://seconduser:thepassword@api.del.icio.us/v1/posts/add?url=http://seet.dk&description=test"
Cela fonctionne très bien.
J'ai ensuite voulu créer un bookmarklet dans mon Firefox.J'ai cherché sur Google et trouvé des morceaux et j'ai fini avec :
javascript:void(
open('https://seconduser:password@api.del.icio.us/v1/posts/add?url='
+encodeURIComponent(location.href)
+'&description='+encodeURIComponent(document.title),
'delicious','toolbar=no,width=500,height=250'
)
);
Mais tout ce qui se passe, c'est que je reçois ceci de del.icio.us :
<?xml version="1.0" standalone="yes"?>
<result code="access denied" />
<!-- fe04.api.del.ac4.yahoo.net uncompressed/chunked Thu Aug 7 02:02:54 PDT 2008 -->
Si je vais ensuite dans la barre d'adresse et que j'appuie sur Entrée, cela devient :
<?xml version='1.0' standalone='yes'?>
<result code="done" />
<!-- fe02.api.del.ac4.yahoo.net uncompressed/chunked Thu Aug 7 02:07:45 PDT 2008 -->
Avez-vous des idées pour le faire fonctionner directement à partir des signets ?
La solution
Pouvez-vous analyser le trafic pour découvrir ce qui est réellement envoyé ?Est-ce qu'il envoie des données d'authentification et qu'elles sont incorrectes ou présentées sous une forme que le serveur n'aime pas, ou n'est-il jamais envoyé du tout par Firefox ?
Autres conseils
@travis Ça a l'air très sympa !Je vais certainement y jeter un œil.Je peux penser à plusieurs endroits où je peux l'utiliser
Je n'ai jamais eu le temps de renifler le trafic, mais j'ai découvert qu'un site php sur mon propre serveur avec http-auth fonctionnait bien, alors j'ai pensé que c'était quelque chose de délicieux.J'ai ensuite créé une page php qui fait un wget de la délicieuse API et tout fonctionne bien :)
Je recommanderais de consulter le Module complémentaire iMacros pour Firefox.Je l'utilise pour me connecter à un serveur Web local et après m'être connecté, accéder directement à une certaine page.Le code que j'ai ressemble à ceci, mais il vous permet d'enregistrer vos propres macros :
VERSION BUILD=6000814 RECORDER=FX
TAB T=1
URL GOTO=http://10.20.2.4/login
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:introduce ATTR=NAME:initials CONTENT=username-goes-here
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:introduce ATTR=NAME:password CONTENT=password-goes-here
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:introduce ATTR=NAME:Submit&&VALUE:Go
URL GOTO=http://10.20.2.4/timecard
Je fais un clic central dessus et il ouvre un nouvel onglet et exécute la macro m'amenant directement à la page que je veux, connecté avec le compte que j'ai spécifié.
Est-ce qu'appeler la méthode deux fois fonctionne ?
Il me semble que votre authentification est approuvée après l'arrivée du contenu, donc une deuxième tentative fonctionne maintenant car vous disposez des bons cookies.