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

时间:2017-01-20 22:51:37

标签: php session http-post remote-server remote-login

我制作了一个简单的PHP登录系统来远程登录,但是SESSION不会存储任何数据。请查看下面的代码。请注意,mainserver和remoteserver实际上是真正的Web地址。我只是没有足够的声誉发布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 );

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

我应该解决哪些问题?

1 个答案:

答案 0 :(得分:0)

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

要实现SSO,您可以查看Single Sign On across multiple domains

尽管它已经关闭,但它有一些有用的答案。

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