2017-04-07 3 views
0

Je souhaite que mon application Go s'authentifie auprès d'un site Web, puis utilise le cookie reçu pour accéder à des emplacements sécurisés. Les exemples de boucles suivants illustrent exactement ce que j'essaie de faire:Réception et envoi de cookies avec le client Go?

Authentifier avec le site Web via x-www-form-urlencoded et enregistrer le cookie. Les données sont automatiquement urlencoded:

curl 'https://www.example.com/login' \ 
    --cookie-jar cookies.txt \ 
    --header 'Content-Type: application/x-www-form-urlencoded' \ 
    --data 'user=USER NAME&pass=PASS' 

maintenant l'authentification des cookies est enregistré dans cookies.txt et j'envoyer tout simplement que, pour accéder à une page qui nécessite une connexion:

curl 'https://www.example.com/profile' \ 
    --cookie cookies.txt 

Je ne veux pas stocker les cookie sur le disque dans mon application, seulement en mémoire afin que je puisse l'utiliser en cas de besoin.

Quelqu'un at-il un exemple de la façon dont cela peut être réalisé dans Go?

+5

Oui, utilisez un [http.CookieJar] (http://golang.org/pkg/net/http/#CookieJar). Voir [Quelle est la différence entre cookie et cookiejar?] (Http://stackoverflow.com/questions/31270461/what-is-the-difference-between-cookie-and-cookiejar/31270794#31270794) – icza

+0

Merci. Belle et claire explication. Je renvoie un pointeur sur 'cookiejar.Jar' depuis ma fonction d'authentification et l'utilise avec' http.Client' dans une autre fonction. –

Répondre

0

Pour golang vous pouvez Add a cookie à une demande, vous pouvez également obtenir des cookies en utilisant this fonction après avoir fait une demande Web.