Neues JS-SDK mit OAuth 2.0-Subdomäne in fbsr_cookie speichern?

8

BEARBEITEN: Dieser Fehler wurde protokolliert und als Facebook-Fehler bestätigt. Es wurde jetzt behoben!

Ich teste meine Updates, um auf das neue JS SDK zu wechseln. Meine App läuft über mehrere Subdomains meiner Domain. Auf dem alten JDK habe ich so etwas angerufen:

%Vor%

Auf dem neuen JDK sieht es so aus:

%Vor%

Mit einem Cookie-Manager-FF-Addon können Sie sehen, dass die alte Version ein Cookie auf mydomain.com setzen würde, aber das neue setzt es auf www.mydomain.com - was bedeutet, dass meine andere Subdomain nicht auf das Cookie zugreifen kann.

Zur Klarstellung: Das Problem ist, dass ich den Facebook-Cookie nicht auf verschiedenen Subdomains verwenden kann, und auch wenn ich sie in jeder Subdomain anmelde, muss ich sie auch von jeder Subdomain abmelden

    
Abby 26.08.2011, 14:29
quelle

4 Antworten

3

Update: Der Bug wurde von Facebook auf 'Fixed' aktualisiert. Hurra!

Dies ist ein Facebook-Bug und wurde protokolliert, reproduziert und als hohe Priorität akzeptiert: Ссылка

    
Abby 16.11.2011, 11:12
quelle
15

Wenn Sie oauth beim Aufruf von FB.init () über die JavaScript-API auf true setzen, erhalten Sie jetzt einen fbsr_APP_ID-Cookie anstelle eines fbs_APP_ID-Cookies (beachten Sie das "r"). Es enthält eine signierte Anfrage und einen Teil der oauth-Migration.

Wenn Sie das PHP SDK verwenden, sollte es sich um die Änderung kümmern.

Die Dokumente für Websites scheinen jedoch nicht mit einer neuen Funktion get_facebook_cookie () aktualisiert zu werden: Ссылка

Es verwendet immer noch das alte Cookie-Format. Sie können hier eine signierte Anfrage analysieren:

Ссылка

Dann müssen Sie den Parameter "code" im Cookie über die Dokumente in ein access_token umwandeln: developers.facebook.com/docs/authentication/ (kein http: // wegen StackOverflow-Spam-Schutz)

Ich habe ein wenig in der Quelle des neuen PHP SDK geforscht, um das herauszufinden, da die gesamte Dokumentation anscheinend nicht aktualisiert wird.

Der vollständige Code, den ich benutze, ist eine Kombination aus den oben genannten und ein paar zusätzlichen Änderungen, um mit dem alten oder neuen Cookie-Format zu arbeiten. Die neue Funktion get_facebook_cookie () gibt einige zusätzliche Array-Elemente (algorithm, code, emerged_at, user_id) zurück und einige Array-Elemente sind nicht mehr gesetzt (base_domain, secret, session_key, sig). Die wichtigsten Parameter, nach denen die meisten Menschen suchen, sind höchstwahrscheinlich gesetzt (uid, access_token und abläuft)

%Vor%     
Matthew Kolb 13.09.2011 19:56
quelle
0

1) Überprüfen Sie Ihre App. Domain in Einstellungen wird als mydomain.com und nicht als www.mydomain.com eingestellt 2) Benutze channel file und url in init:

%Vor%

Ссылка

hoffe das hilft

    
Anatoly Lubarsky 22.09.2011 10:04
quelle
0

schau dir das an Ссылка <appid> / Zusammenfassung

schau dir die App Domain an: Teil von "Basic Info:"
Wenn Sie "www.example.com" angeben, funktioniert dies nur für www.example.com. Wenn Sie "example.com" verwenden, wird es als * .example.com behandelt und funktioniert für alle Subdomains

    
adkatrit 22.09.2011 18:21
quelle

Tags und Links