使用rest api登录远程elgg服务器

时间:2014-07-17 14:18:51

标签: ajax api rest login elgg

我在localhost中有一个登录表单。 如果我点击登录,它必须检查来自elgg.amusedcloud.com的用户名和密码,如果它正确,那么 - 获取他们的活动。

$(document).ready(function() {
$("#submit").click(function(event){
var id = document.getElementById('email_id').value;
var pass = document.getElementById('pass_word').value;
$.ajax( {
url:"http://elgg.amusedcloud.com/services/api/rest/xml/?method=auth.gettoken",
type:"POST",
data:"username="+id+"&password="+pass,
dataType:"xml",
success:function(data) {
$('#ajaxDiv').html(data);

}
});
});
});

<form method="post">
<table border="0" align="center">
<tr><td>Email:</td><td><input id="email_id" type="text" name="email" /></td></tr>

<tr><td>Password:</td><td><input id="pass_word" type="password" name="password" /></td></tr>

<tr><td><input id="submit" type="submit" name="submit" value="Login" /></td></tr>
</table>
</form>

<div id='ajaxDiv'>Your result will display here</div>

但如果我使用curl,我会得到错误的结果

这是我的卷曲编码:

if( isset( $_POST['submit'] ) ) {
$postfields = array();
$postfields['username'] = $_POST['email'];
$postfields['password'] = $_POST['password'];
$postfields['method'] = 'auth.gettoken';

$url = 'http://elgg.amusedcloud.com/services/api/rest/json';
$curl = curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 3);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
$result = curl_exec($curl);
$json_response = json_encode($result);
echo $json_response;
curl_close($curl);
}

1 个答案:

答案 0 :(得分:0)

我用这个解决了:     var email_id = $('#email_id')。val();
    var pass = $('#pass_word')。val();
    $就({     类型:“POST”,     url:“xxx”,
    data:{method:'auth.gettoken',用户名:email_id,密码:pass},     dataType:'json',     成功:功能(反应){
    var auth_token = response.result;

if(auth_token == null) {
$("#connect_error").html("<div>Invalid email/password</div>");
}
else {
sessionStorage.setItem("auth",auth_token);
sessionStorage.setItem("email",email_id);
window.location = '../login_with_elgg/index.php';           
}
}
});