远程登录并保持会话活动
Login remotely and keep the session active
我做了一个简单的PHP登录系统来远程登录,但是SESSION不会存储任何数据。请看下面的伪代码。请注意 mainserver 和 remoteserver 实际上是真实的网址。我只是没有足够的声誉 post 2 个链接:
文件: mainserver/login.php
$username = $_POST[ "username" ];
$userpassword = $_POST[ "password" ];
$result = check_logIn( $username, $password );
if ( $result ) {
$_SESSION[ "is_loggedIn" ] = true;
die ( true );
} else die( false );
文件: remoteserver/remoteLogin.php
$http_query = http_build_query( array(
"username" => "Username goes here",
"password" => "Password goes here"
) );
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL,"mainserver/login.php");
curl_setopt( $ch, CURLOPT_COOKIEJAR, md5( rand() ) .".txt" );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $http_query );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec ( $ch );
curl_close( $ch );
即使主服务器 returns 为真(登录成功后),我访问 http://mainserver.com/ 但 $_SESSION[ "is_loggedIn" ]
仍然不存在;从技术上讲,我仍然被视为已注销的人。
有什么我应该解决的遗漏吗?
您的问题是这样的:就像您通过 chrome 登录时一样,您没有登录 firefox。您的服务器 运行 脚本也是如此,"mainserver" 的会话链接到 "remoteserver" 的 CURL 请求,而不是您或您的浏览器。
即使你共享一个IP或物理机。
要实现单点登录你可以看看Single Sign On across multiple domains
尽管它被关闭了,但它有一些有用的答案。
或者尝试发布符合您(新)需求的更具体的问题。
我做了一个简单的PHP登录系统来远程登录,但是SESSION不会存储任何数据。请看下面的伪代码。请注意 mainserver 和 remoteserver 实际上是真实的网址。我只是没有足够的声誉 post 2 个链接:
文件: mainserver/login.php
$username = $_POST[ "username" ];
$userpassword = $_POST[ "password" ];
$result = check_logIn( $username, $password );
if ( $result ) {
$_SESSION[ "is_loggedIn" ] = true;
die ( true );
} else die( false );
文件: remoteserver/remoteLogin.php
$http_query = http_build_query( array(
"username" => "Username goes here",
"password" => "Password goes here"
) );
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL,"mainserver/login.php");
curl_setopt( $ch, CURLOPT_COOKIEJAR, md5( rand() ) .".txt" );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $http_query );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec ( $ch );
curl_close( $ch );
即使主服务器 returns 为真(登录成功后),我访问 http://mainserver.com/ 但 $_SESSION[ "is_loggedIn" ]
仍然不存在;从技术上讲,我仍然被视为已注销的人。
有什么我应该解决的遗漏吗?
您的问题是这样的:就像您通过 chrome 登录时一样,您没有登录 firefox。您的服务器 运行 脚本也是如此,"mainserver" 的会话链接到 "remoteserver" 的 CURL 请求,而不是您或您的浏览器。 即使你共享一个IP或物理机。
要实现单点登录你可以看看Single Sign On across multiple domains
尽管它被关闭了,但它有一些有用的答案。
或者尝试发布符合您(新)需求的更具体的问题。