2016-05-20 10 views
0

Von meiner Website, ich öffne einen Login-Dialog in einem neuen Fenster:Halten window.opener Eigenschaft über Umleitungen

window.open('mysite/Login/'); 

mysite/Login/ leitet mich automatisch auf den OAuth-Anbieter. Der OAuth-Provider führt seinen hokey-pokey aus und leitet mich dann mit den gültigen Anmeldeinformationen zurück an mysite/Login/.

Jetzt kommt der knifflige Teil: Ich möchte der App mitteilen (window.opener), dass die Anmeldung bereit ist.

Ich habe versucht, das folgende HTML in mysite/Login zurückzukehren:

<html><script> 
    window.opener.MyApp.proceedAfterLogin() 
</script></html> 

Aber dies führt den Fehler

Login:2 Uncaught TypeError: Cannot read property 'MyApp' of null

So window.opener ist null. Ich denke, es ist nicht durch die Weiterleitungen erhalten; Ist diese Annahme richtig? Wie kann ich immer noch das gleiche Ergebnis erzielen?

Kann ich ein JavaScript-Objekt in einen Cookie einfügen? (Ich glaube nicht, ein Cookie kann nur Text speichern, richtig?)

Antwort

0

Die einfachste Lösung wäre, den Wert als localStorage speichern dann abrufen, wenn das OAuth abgeschlossen ist.

locationStorage.setItem('opener', JSON.stringify(window.opener)); 

Dann einmal das OAuth abgeschlossen ist.

window.opener = JSON.parse(locationStorage.opener);