Http Auth dans un bookmarklet Firefox 3

J'essaie de créer un bookmarklet pour publier des signets del.icio.us sur un compte séparé.

Je l'ai testé à partir de 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 j'ai trouvé des morceaux et j'ai fini par :

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 favoris ?

请先 登录 后评论

3 réponses

GateKiller

Est-ce que l'appel de la méthode fonctionne deux fois ?

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 avez les bons cookies.

请先 登录 后评论
jj33

Pouvez-vous sniffer le trafic pour trouver 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-elle jamais envoyée par firefox ?

请先 登录 后评论
svrist

@travis 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 :)

请先 登录 后评论