Laravel:从一个子域登录到另一个子域:会话问题
我在一个具有多个子域(每个域都有不同的用户)的应用程序中使用Laravel4.2上的Sentry:我想从一个子域(domain-a.maindomain.com)登录到另一个子域(domain-b.maindomain.com),而无需跨子域持久会话Laravel:从一个子域登录到另一个子域:会话问题,laravel,laravel-5,laravel-4,Laravel,Laravel 5,Laravel 4,我在一个具有多个子域(每个域都有不同的用户)的应用程序中使用Laravel4.2上的Sentry:我想从一个子域(domain-a.maindomain.com)登录到另一个子域(domain-b.maindomain.com),而无需跨子域持久会话 任何人都知道如何使用laravel实现这一点,我对5.1版之前的laravel并不熟悉,但文档中有一部分与身份验证相关: 使用此功能,您可以对从一个域到另一个域的用户进行身份验证。您需要将某些内容从第一个域传递到第二个域,这是两个用户模型之间唯一
任何人都知道如何使用laravel实现这一点,我对5.1版之前的laravel并不熟悉,但文档中有一部分与身份验证相关:
使用此功能,您可以对从一个域到另一个域的用户进行身份验证。您需要将某些内容从第一个域传递到第二个域,这是两个用户模型之间唯一的公共属性,然后对匹配的用户进行身份验证。我不熟悉5.1版之前的Laravel,但文档中有一部分与身份验证相关: 使用此功能,您可以对从一个域到另一个域的用户进行身份验证。您需要将一些内容从第一个域传递到第二个域,这是两个用户模型之间唯一的公共属性,然后对匹配的用户进行身份验证。在(php/mysql)中,我们可以在所有数据库中创建一个名为
IslogedIn
(或您喜欢的其他内容)的行,使它们看起来像:
//---------------------------------------------
// (main database) --> site1.com
// ------------------------------------------
// | id | username | password | IslogedIn |
// |-----|-----------|----------|-------------|
// | 1 | jhony | pass | 0 |
// |-----|-----------|----------|-------------|
//---------------------------------------------
// (2nd database) --> site2.com
// ------------------------------------------
// | id | username | password | IslogedIn |
// |-----|-----------|----------|-------------|
// | 1 | jhony | pass | 1 |
// |-----|-----------|----------|-------------|
例如,这里我们看到用户登录了第二个数据库
因此,该值将为:
IslogedIn=1
我们将在我们所有的域中使用它,
从“login.php”(在Laravel中,它可能是其他东西),从“login.php”,如果用户使用一些mysql命令登录,我们将标记为
IslogedIn=1
之后,我们使用一个scrip页面连接所有数据库,在两个域文件夹中将其命名为“checkout.php”,并在其中写入:
- 1-对于旧的php版本:
$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-对于新版本来说,通常只是在过去的代码中做了一些类似的更改,
例如
到mysql
。阅读本文:mysqli
$string
中的行:(IslogedIn)
然后,我们检查用户是否记录在所有数据库中:
if ( $Db_Main->IslogedIn || $Db_2nd->IslogedIn )
{
// ----->> your login code or relogin code here
// + sessions and cookies and reloud link and all other stuff
}
然后我们用$Db_Main->close()关闭脚本$Db_第二->关闭()。。。。在(php/mysql)中,我们可以在您的所有数据库中创建一个名为IslogedIn的行(或您喜欢的其他行),以便它们看起来像:
//---------------------------------------------
// (main database) --> site1.com
// ------------------------------------------
// | id | username | password | IslogedIn |
// |-----|-----------|----------|-------------|
// | 1 | jhony | pass | 0 |
// |-----|-----------|----------|-------------|
//---------------------------------------------
// (2nd database) --> site2.com
// ------------------------------------------
// | id | username | password | IslogedIn |
// |-----|-----------|----------|-------------|
// | 1 | jhony | pass | 1 |
// |-----|-----------|----------|-------------|
例如,这里我们看到用户登录了第二个数据库
因此,该值将为:IslogedIn=1
我们将在我们所有的域中使用它,
从“login.php”(在Laravel中,它可能是其他东西),从“login.php”,如果用户使用一些mysql命令登录,我们将标记为IslogedIn=1
之后,我们使用一个scrip页面连接所有数据库,在两个域文件夹中将其命名为“checkout.php”,并在其中写入:
- 1-对于旧的php版本:
$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-对于新版本来说,通常只是在过去的代码中做了一些类似的更改,
例如mysql
到mysqli
。阅读本文:
我不熟悉Laravel,所以ofc可以更改“$host\u main\u name”和“$username”以及(表名)。。。。。等等,以支持您的脚本
并从每个db调用$string
中的行:(IslogedIn)
然后,我们检查用户是否记录在所有数据库中:
if ( $Db_Main->IslogedIn || $Db_2nd->IslogedIn )
{
// ----->> your login code or relogin code here
// + sessions and cookies and reloud link and all other stuff
}
然后我们用$Db_Main->close()关闭脚本$Db_第二->关闭()。。。。etc
当结帐结束时。我认为,由于Laravel身份验证系统使用cookies来管理会话,因此您实际上需要在要使用的每个子域上登录用户。为了避免这种情况,您可以使用另一个会话驱动程序,如数据库。而@SUB-HDR
在他的评论中给你的也是一个很好的方法 我认为,由于Laravel身份验证系统使用Cookie来管理会话,因此您实际上需要在要使用的每个子域上登录用户。为了避免这种情况,您可以使用另一个会话驱动程序,如数据库。而@SUB-HDR
在他的评论中给你的也是一个很好的方法 有趣的做法:)。我假设您正在维护一个遗留系统?那些mysql
语句请求更新到mysqli
lol@Spholt,这取决于他有什么php版本,他没有提到,重要的是方法和解决方案,如果他能够理解一般的方式,其余的内容很容易更改,比如mysql
到mysqli
,只需阅读我在下面的评论中提到的文章(测试方法:)。我假设您正在维护一个遗留系统?那些mysql
语句请求更新到mysqli
lol@Spholt,这取决于他有什么php版本,他没有提到,重要的是方法和解决方案,如果他能够理解一般的方式,通过阅读我在下面的评论中提到的文章,可以很容易地将其他内容更改为mysql
到mysqli