2012-10-08 2 views
0

내 코드 :Wialon 원격 API 로그인

<?php 
    if(isset($_GET['login']) && isset($_GET['login']) && isset($_GET['password'])){ 
     $_login_url = "http://testing.wialon.com/wialon/ajax.html?svc=core/login&params={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 주소로 요청을 보낼 수 있습니까?

답변

1

아니요, 사용자 IP 주소로 요청을 보낼 수 없습니다.

그러나 HTTP_X_FORWARDED_FOR 요청 헤더 or similar을 사용하여 요청이 다른 IP를 대신하여 수행되었음을 나타낼 수는 있지만 공개적으로 사용할 수없는 것으로 보이는 문서는 보지 않아도됩니다. 그것의 확실하지 않아. 너는 그들에게 물어볼 필요가있다.

0

이것은 오래된 스레드이지만 두 개의 센트를 넣을 수 있도록하겠습니다. 토큰 로그인과 권한 부여 해시를 전달하는 두 가지 새로운 wialon 인증 방법이 있습니다. 두 번째 방법은 서버간에 세션을 유지 관리하는 데 가장 적합합니다.

http://sdk.wialon.com/wiki/en/kit/remoteapi/apiref/core/create_auth_hash

http://sdk.wialon.com/wiki/en/kit/remoteapi/apiref/token/token

// 여기에 http://hosting.wialon.com/login.html?client_id=wialon&access_type=-1&activation_time=0&duration=0&flags=1 에서 토큰을 얻을 // 당신은 SDK의 액세스 wialon에서 기존의 사용자 이름을 가져야한다

$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'];