J'ai été la navigation sur Facebook la documentation de la lecture sur toile applications et je suis tombé sur un exemple d'application: http://developers.facebook.com/docs/samples/canvas. Comme je l'ai lu à travers leur exemple, cependant, je suis très confus au sujet de leur utilisation de cookies dans l'iframe de l'application.
Un peu d'histoire...
J'avais déjà joué un peu avec l'aide des iframes pour intégrable widgets (sans rapport avec Facebook) et je l'ai trouvé un peu de navigateurs (Chrome, Safari, etc.) stricte cookie de politiques et de ne pas permettre à la croix-domaine les cookies installés dans des iframes (Firefox, d'autre part, permet à des iframes pour définir la croix-domaine des cookies dans les iframes). Par exemple, si foo.com a un iframe avec src="http://bar.com/widget"
l'iframe widget ne sera pas en mesure de définir des cookies pour bar.com et, par conséquent, aura de la difficulté à la persistance de l'état à l'intérieur de l'iframe: bar.com va interpréter chaque requête (y compris les requêtes ajax) à partir du widget comme une nouvelle demande sans la mise en place de la session. J'ai lutté, et a trouvé un moyen de contourner cela en utilisant JSONP et javascript pour créer des cookies pour foo.com au lieu de cela...
... et alors?
Eh bien, j'étais à la recherche, à l'exemple de toile iframe Facebook application et j'ai remarqué que leur application (hébergé sur runwithfriends.appspot.com) est en mesure de définir un cookie, u
, avec le courant id de l'utilisateur ainsi que quelques autres paramètres de l'runwithfriends.appspot.com domaine. Il envoie ce cookie à chaque requête... et il fonctionne dans Chrome et Firefox! WTF? Comment Facebook obtenir autour de la croix-domaine de cookie restrictions sur Chrome?
(Je connais déjà la réponse maintenant, mais j'ai pensé que cela pourrait être utile pour quiconque de la difficulté à comprendre la même chose -- je vais poster la réponse ci-dessous.)