Hoe zich te ontdoen van de # _ = _ in de facebook doorverwijzing van django-sociale-auth?

django-social-auth leidt me door naar /mypage # _ = _ wanneer ik de Facebook-backend gebruik.

Omdat ik met jQuery-mobiel werk aan de voorkant, kan ik dat niet accepteren.

Ik vond: https://developers.facebook.com/blog/post/552/ op de Facebook-ontwikkelaarswebsite.

Wijzigingen in Session Redirect Behavior

     

Deze week zijn we begonnen met het toevoegen van een fragment # _ = _ aan de redirect_uri wanneer   dit veld blijft leeg. Zorg ervoor dat uw app dit aankan   gedrag.

Dus ik heb geprobeerd om SOCIAL_AUTH_LOGIN_REDIRECT_URL in de django-social-auth-instellingen in te stellen op iets 'none blank'. Geen geluk

Dus, hoe kom ik van het hash-ding af?

Hartelijk bedankt!

12
Heb je geprobeerd dat deel te verwijderen met HTMLParser of met regex?
toegevoegd de auteur Eswar Rajesh Pinapala, de bron
Toen Facebook zei - "Zorg ervoor dat uw app dit gedrag aankan." Ik denk dat ze bedoelen dat er geen vlag is om dit aan het FB-einde te configureren. :)
toegevoegd de auteur Eswar Rajesh Pinapala, de bron
NEE dat deed ik niet, omdat ik denk dat dat gewoon een "hack" zou zijn maar hoe dan ook .. het lijkt erop dat ik het op deze manier moet doen :(
toegevoegd de auteur wzr1337, de bron
waarschijnlijk is dat bedoeld;)
toegevoegd de auteur wzr1337, de bron
ok .. Facebook lijkt op dit moment hun documenten niet te volgen ...
toegevoegd de auteur wzr1337, de bron
redirect_uri is toegevoegd aan de link, hier is een voorbeeld van de URL facebook.com/dialog/… lokaal getest, maar het toont nog steeds de" # _ = _ "wanneer omgeleid terug .
toegevoegd de auteur omab, de bron

3 antwoord

Nou, dit is misschien niet de exacte oplossing, maar het toevoegen van het volgende script aan je hoofd zou kunnen helpen bij het oplossen van het probleem:

<script type="text/javascript">
   if (window.location.hash == '#_=_') {
      window.location.hash = '';
   }
</script>
14
toegevoegd
Dit lost het probleem niet op, het is maar een hack.
toegevoegd de auteur commadelimited, de bron

Het lijkt erop dat Facebook altijd de '# _ = _' toevoegt, zelfs als de redirect_uri wordt geleverd. Aangezien dit gedrag in strijd is met de blogpost van Facebook, is deze functionaliteit op Facebook ingediend als bug . Facebook heeft een officieel antwoord op deze bug gegeven waarin wordt beweerd dat het toevoegen van de '# _ = _' een ontwerpfunctie is die een potentiële beveiligingsfout voorkomt.

Facebook biedt het volgende advies voor het omgaan met het ongewenste uri-fragment: "Als de esthetiek, of client-side gedrag, van de resulterende URL van belang is, zou het mogelijk zijn om window.location.hash (of zelfs een server-side) te gebruiken omleiding van uw eigen) om de aanstootgevende karakters te verwijderen. "

Het bovenstaande JavaScript lijkt een geldige oplossing te zijn, ook al is het een beetje hacky.

7
toegevoegd
<script type="text/javascript">
    if (window.location.href.indexOf('#') > -1) {
        window.location.href = '/';
    }
</script>
0
toegevoegd