i18n - Domainproblem
am 27.10.2009 - 19:52 Uhr in
Hallo.
Ich habe zwei Domains - domain.com und domain.de
Wenn ich Domain.com aufrufe wird die Seite in Englisch angezeigt, domain.de entsprechend Deutsch. Das funktioniert!
Wenn ich mich unter domain.com einlogge und auf die deutsche Sprache wechseln will, habe ich keine Zugriffsbrecehtigung auf die Seite (logisch). Andersrum genauso.
Wie kann ich das umgehen? Ich habe bereits versucht in der settings.php die BaseURL und die CookieDomain einzustellen. Aber entweder ist das nicht der richtige Weg oder ich habe das nicht richtig gemacht.
Hat jemand einen Tipp?
Ziel ist, dass egal wo ich mich einlogge ich auch wechseln kann und trotzdem eingeloggt bin. Wie kriege ich das hin?
Danke im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben
Hänge die Session-ID an die
am 28.10.2009 - 11:37 Uhr
Hänge die Session-ID an die URL an, auf die beim Sprachwechsel weitergeleitet wird. Auf der Zielseite kannst du dann anhand der Session-ID die Session wieder aufnehmen und den entsprechenden Cookie an den Benutzer senden.
--
Nicht ganz so einfach
am 28.10.2009 - 18:34 Uhr
@traxer:
Wenn man bei Deinem Vorschlag nicht noch weiteren Aufwand treibt, ist die Plattform anfällig für Session Hijacking.
Markus Kalkbrenner
Cocomore AG
drupal.cocomore.com
Markus Kalkbrenner
bio.logis GmbH
Das ist richtig. Aber das
am 28.10.2009 - 18:57 Uhr
Das ist richtig. Aber das kann man durch zusätzlichen Aufwand reduzieren.
--
Danke für die
am 30.10.2009 - 02:08 Uhr
Danke für die Antwort.
Hmm... irgendwie klingt das nicht dem richtigen Weg.
Sollte die BaseURL in der settings.php nicht für solche Fälle da sein? Eigentlich will ich ja nur, dass egal welche Sprache gewählt ist (und damit welche Domain) die Session für beide Seiten gilt. Also müsste doch jede Sessionprüfung über die BaseURL laufen?
Gruß
JThan
_____
Meine private Seite: http://durstich.de
--> http://is.gd/C9Pb - Drupal Themes Showroom <--
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
Gruß
JThan
_____
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
Andererseits wäre es ja
am 30.10.2009 - 03:05 Uhr
Andererseits wäre es ja auch wieder ein Sicherheitsrisiko. Ach, wenn es nur um mich ginge, würde ich mich halt jeweils zweimal einloggen und ausloggen - aber erklärt das mal nem Kunden *grml*.
Gruß
JThan
_____
Meine private Seite: http://durstich.de
--> http://is.gd/C9Pb - Drupal Themes Showroom <--
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
Gruß
JThan
_____
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
JThan schrieb Sollte die
am 30.10.2009 - 09:08 Uhr
Hmm... irgendwie klingt das nicht dem richtigen Weg.
Was veranlasst dich zu diesem Gedanken?
Sollte die BaseURL in der settings.php nicht für solche Fälle da sein?
Nein, die ist nur zum Generieren von Links zur eigenen Site.
Eigentlich will ich ja nur, dass egal welche Sprache gewählt ist (und damit welche Domain) die Session für beide Seiten gilt.
Als erstes solltest du dir über deine Prioritäten klar werden. Im ersten Beitrag schien es noch die Verwendung beider Domains zu sein, jetzt scheint es auf einmal die Mehrsprachigkeit zu sein.
Geht es dir in erster Linie um die Sprache? Dann verwende
en.example.com
für die englischsprachigen Inhalte undde.example.com
für deutschsprachige. Dann brauchst du lediglichexample.com
als Cookie Domain eintragen und der Rest funktioniert automatisch. Von der anderen Domain machst du dann einen HTTP-Redirect 301 aufde.example.com
.Geht es dir in erste Linie darum, deine beiden registrierten Domains zu verwenden, dann führt kein Weg an einer Lösung in der Art wie ich sie eingangs beschrieben habe vorbei. Gründe kannst du in RFC 2965 im Abschnitt 3.3.4 Sending Cookies to the Origin Server nachlesen.
Also müsste doch jede Sessionprüfung über die BaseURL laufen?
Den Satz verstehe ich nicht.
--
Der Browser schickt Cookies
am 30.10.2009 - 10:25 Uhr
Der Browser schickt Cookies nur an die Domain, von der sie erzeugt wurden bzw. bei entsprechender Konfiguration auch an Subdomains.
Wäre das nicht so, würde das Prinzip von Sessioncookies auch nicht funktionieren.
Wäre eine Redirect von example.com auf example.de/en oder en.example.de eine Alternative?
Ansonsten bleibt nur eine Lösung zu programmieren (der erwähnte Zusatzaufwand).
Z.B. beim Klick auf den Sprachumschalter ein Flag in der gemeinsamen DB zusetzen, der beim Domainwechsel den User automatisch einloggt. Dieses Flag darf nur einmal und nur für sehr kurze Zeit gültig sein.
Markus Kalkbrenner
Cocomore AG
drupal.cocomore.com
Markus Kalkbrenner
bio.logis GmbH