2012-08-14 46 views
7

目标:远程登录到Drupal的7个网站,使用服务模块

我想我的web应用程序,以便能够向用户发送的用户名和密码在我的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未授权的响应。我已经重复检查并且认证信息是正确的。我尝试了其他参数名称的变体,如:(用户名,密码),(用户名,密码),(名称,密码)等。

我似乎无法登录到工作,通过我在Stackoverflow上找到的其他示例,但他们没有工作。

+2

如果不是身体是:“用户名=管理员和密码= adminpass是否”如果你正在使用“x-www-form-urlencoded”? – 2012-08-15 14:32:40

+1

aaaaaaaand当然这是如此简单。我忘了POST参数和GET参数的格式是一样的。谢谢。 – user594044 2012-08-15 16:08:04

+0

你也可以在json中进行POST(或服务模块支持的任何其他格式)。只需点击服务资源配置的“服务器”选项卡上的复选框,然后用json对象填充POST的主体。 – 2012-08-17 07:50:54

回答

4

对于drupal.org中的服务模块有很好的文档。格外有这里使用服务机构的几个例子:http://drupal.org/node/783722

此页面上的例子是使用命令行工具卷曲: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" 
} 
' 

所以:

  • 你有你的端点ok
  • 内容类型应该是应用程序lication/JSON
  • 和身体要像{“用户名”:“管理”,“密码”:“通行证”}