Php Wialon远程API登录
我的代码:Php Wialon远程API登录,php,session,request,Php,Session,Request,我的代码: <?php if(isset($_GET['login']) && isset($_GET['login']) && isset($_GET['password'])){ $_login_url = "http://testing.wialon.com/wialon/ajax.html?svc=core/login¶ms={user:%s,password:%s}"; $login = $_GET['
<?php
if(isset($_GET['login']) && isset($_GET['login']) && isset($_GET['password'])){
$_login_url = "http://testing.wialon.com/wialon/ajax.html?svc=core/login¶ms={user:%s,password:%s}";
$login = $_GET['login'];
$password = $_GET['password'];
$handle = fopen(sprintf($_login_url, $login, $password), "r");
$line = fgets($handle);
fclose($handle);
$responce = explode(",",$line);
if(count($responce) < 2) {
echo "Invalid user or password";
} else {
$sessid = explode(":",$responce[1]);
$lastid = str_replace("\"","",$sessid[1]);
echo "http://testing.wialon.com/index.html?sid=".$lastid."";
}
}
?>
当我在托管脚本的服务器上访问该脚本时,一切都正常工作,会话是用我的IP地址生成的
但当我用另一台计算机访问它时,任何试图登录脚本的用户都会使用服务器IP地址生成会话。我可以用用户的IP地址发送请求吗?不,不能用用户的IP地址发送请求
但是,您可以通过使用请求头的
HTTP\u X\u FORWARDED\u来指示该请求是代表另一个IP执行的,但是不查看他们的文档(这些文档似乎不公开),我不能确定。你需要问问他们。这是一条旧线,但是,让我把我的两分钱放进去。有两种新的wialon athentication方法:令牌登录和通过传递athorization散列。第二种方法最适合跨服务器维护会话
//从这里取代币
//您应该拥有wialon提供的现有用户名和SDK访问权限
$params = "{'token':'$token','operateAs','$username'}";
$baseurl = "http://hst-api.wialon.com/wialon/ajax.html";
$url = "$baseurl?params=".urlencode($params)."&svc=token/login";
$o = json_decode(file_get_contents($url),true);
$sid = $o['eid'];