2017-03-11 6 views

Antwort

0

Ich denke, da das Laravel-Authentifizierungssystem Cookies verwendet, um die Sitzung zu verwalten, müssen Sie den Benutzer tatsächlich bei jeder Subdomain anmelden, die Sie verwenden werden.Um dies zu vermeiden, können Sie einen anderen Sitzungstreiber wie die Datenbank verwenden. und was @SUB-HDR Ihnen in seinem Kommentar gibt, ist ein guter Weg, es auch zu tun.

0

Ich bin nicht vertraut mit Laravel vor Version 5.1, aber es ist ein Teil der Dokumentation, die zur Authentifizierung betrifft:

https://laravel.com/docs/4.2/security

$user = User::find(1); 

Auth::login($user); 

Mit diesem können Sie möglicherweise einen Benutzer von einer Ihrer Domänen zur anderen authentifizieren. Sie müssten etwas von der ersten Domäne an die zweite Domäne übergeben, was ein eindeutiges allgemeines Attribut zwischen den beiden Benutzermodellen ist, und dann den übereinstimmenden Benutzer authentifizieren.

0

in (PHP/MySQL) können wir aus einer Reihe IslogedIn genannt (oder etwas anderes bevorzugen Sie) in alle Datenbanken so they''ll wie folgt aussehen:

 //--------------------------------------------- 
    // (main database) --> site1.com 
    // ------------------------------------------ 
    // | id | username | password | IslogedIn | 
    // |-----|-----------|----------|-------------| 
    // | 1 | jhony | pass |  0  | 
    // |-----|-----------|----------|-------------| 


    //--------------------------------------------- 
    // (2nd database) --> site2.com 
    // ------------------------------------------ 
    // | id | username | password | IslogedIn | 
    // |-----|-----------|----------|-------------| 
    // | 1 | jhony | pass |  1  | 
    // |-----|-----------|----------|-------------| 

hier zum Beispiel wir den Benutzer sehen in 2nd database
angemeldet ist, so wird der Wert sein: IslogedIn = 1
und wir jetzt, dass in allen Bereichen
und von „login.php“ verwenden (in Laravel kann es somthing anders sein), von „login.php“ markieren wir IslogedIn = 1 wenn der Benutzer sich mit einigen mysql-Befehlen angemeldet hat.

danach verbinden wir alle Datenbanken eine Scrip-Seite mit und nennen Sie es so etwas wie: ‚checkout.php‘ in beiden Domänen Ordner und schreibe darauf:

  • 1 - für alte PHP-Versionen:

    $Db_Main_con = mysql_connect($hostname, $username, $password); 
    $Db_2nd_con = mysql_connect($hostname, $username, $password , true); 
    //------------------------------------------------------------- 
    $Db_Main_Select = mysql_select_db("Database_name1", $Db_Main_con); 
    $Db_2nd_Select = mysql_select_db("Database_name2", $Db_2nd_con); 
    //------------------------------------------------------------- 
    $Db_main = mysql_query("select * from users where id = :id", $Db_Main_Select); 
    $Db_2nd = mysql_query("select * from users where id = :id", $Db_2nd_Select); 
    
  • 2 - für neue Version ist im allgemeinen ähnlich nur einige Änderungen in der Vergangenheit Code,
    wie mysql bis mysqli. lesen Sie diesen Artikel: mysqli_connect

und ich bin nicht vertraut mit Laravel so OFC Sie das "$ host_main_name" ändern und "$ username" und (Tabellenname) ..... etc zu Fuß Ihre Skript

und von jedem db Aufruf die Zeile: (IslogedIn) in einem $string.

dann gehen wir zu überprüfen, ob der Benutzer Logedin in allen Db haben wir:

if ($Db_Main->IslogedIn || $Db_2nd->IslogedIn ) 
    { 
     // ----->> your login code or relogin code here 
     //   + sessions and cookies and reloud link and all other stuff 

    } 

dann schließen wir das Skript mit $Db_Main->close(); $Db_2nd->close(); .... etc, wenn die Kasse Ende ist.

+0

Interessante Art, es zu tun :). Ich nehme an, dass Sie ein Legacy-System pflegen? Diese 'mysql'-Anweisungen bitten darum, auf' mysqli' lol – Spholt

+1

@Spholt aktualisiert zu werden, es ** hängt davon ab, welche php-Version er hat, und er hat das nicht erwähnt, das Wichtigste ist der Weg und die Lösung, Wenn er in der Lage, die allgemeine Art und Weise zu verstehen, den Rest leicht zu ändern, wie mysql zu mysqli, indem ich einfach den Artikel lese, den ich in meinem Kommentar unten erwähne –