使用服务模块远程登录Drupal 7站点

时间:2012-08-14 23:24:01

标签: api drupal service

目标:

我希望我的网络应用能够在Drupal网站上向Drupal网站发送用户的用户名和密码,并让Drupal网站回复确认用户身份验证信息是否正确。

另一个需求是让Drupal服务器返回创建的会话的会话ID,以及用户的信息,如电子邮件,用户角色等。

到目前为止我有什么:

我启用了Services Rest Server,并在www.mysite.com/rest/上创建了一个端点。我只将响应格式设置为json,并请求解析器到application / x-www-form-urlencoded。我已通过会话,调试模式打开身份验证。我还确保为此端点启用整个用户资源。导航到www.mysite.com/rest/user会给我一个包含所有用户的列表。

关于我的身份验证尝试,我尝试过发送请求:

POST www.mysite.com/rest/user/login
    Content-Type: application/x-www-form-urlencoded
    POST Body:
        name:admin,
        pass:myadminpassword

但它只是不断返回401 Unauthorized响应。我已经仔细检查过,并且auth信息是正确的。我尝试了其他参数名称的变体,如:(用户名,密码),(用户,密码),(名称,密码)等。

我似乎无法登录工作,我已经查看了我在Stackoverflow上找到的其他示例,但是他们没有工作。

1 个答案:

答案 0 :(得分:4)

drupal.org中的服务模块有很好的文档。特别是在这里有几个使用服务器的例子:http://drupal.org/node/783722

此页面上的示例使用命令行工具curl:http://drupal.org/node/1795770

并包含一个登录示例:

curl -X POST -i -H "Content-type: application/json" -c cookies.txt -X POST http://localhost:8888/service/user/login -d '
{
    "username":"user",
    "password":"password"
}
'

所以:

  • 您的终端确定
  • 内容类型应为application / json
  • ,身体应该像{“username”:“admin”,“password”:“pass”}