远程登录并保持会话活动状态



我做了一个简单的PHP登录系统来远程登录,但SESSION不会存储任何数据。请查看下面的代码。请注意,主服务器和远程服务器实际上是真实的网址。我只是没有足够的声誉来发布 2 个链接:

文件:主服务器/登录名.php

$username = $_POST[ "username" ];
$userpassword = $_POST[ "password" ];
$result = check_logIn( $username, $password );
if ( $result ) {
    $_SESSION[ "is_loggedIn" ] = true;
    die ( true );
} else die( false );

文件:远程服务器/远程登录.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 );

即使主服务器返回 true(登录成功后),我访问了 http://mainserver.com/但$_SESSION[ "is_loggedIn" ]仍然不存在;从技术上讲,我仍然被视为注销的人。

有什么遗漏需要我解决的吗?

你的问题是这样的:就像你通过chrome登录一样,你没有在Firefox中登录。运行脚本的服务器也是如此,"主服务器"的会话链接到"远程服务器"的 CURL 请求,而不是您或您的浏览器。即使您共享 IP 或物理机。

若要实现 SSO,可以查看跨多个域的单一登录

尽管它被关闭了,但它有一些有用的答案。

或者尝试发布适合您(新)需求的更具体的问题。

相关内容

  • 没有找到相关文章

最新更新