페이스북 Canvas IFrame 에서 OAuth 2.0 옵션을 켤 경우, 페이스북은 GET 으로 signed_request 를 보낸다.
- 쿠키에 signed_request 가 없는데 GET 에 있으면 최초 접속으로 간주. (보통 다른 브라우저는 보내주니까) 2번 뷰로 redirect 시킨다. 아예 둘 다 없으면 잘못된 접근이다.
- [request_cookie] 이 페이지의 HTML 에 form 을 만들고 body.onload 에서 form.submit() POST로 호출. 이때 첫 페이지에 따라온 signed_request 를 함께 보내야 한다.
- [request_cookie] 지정된 원래 페이지로 다시 redirect 할 것. 이제부터 쿠키가 만들어져야 한다.
이때 P3P 헤더를 맨 앞에 지정할 것. 가급적 django middleware 를 이용. 즉 1개의 뷰에서 GET/POST 핸들링을 추가하는 것만으로 해결할 수 있다.
response[P3P] = CP=NOI DSP COR NID ADMa OPTa OUR NOR
see also http://chitika.com/bytes/2010/04/cross-domain-cookies-in-safari/