8

目标:

我希望我的 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 Unauthorized 响应。我已经仔细检查过,身份验证信息是正确的。我已经尝试过参数名称的其他变体,例如:(用户名,密码),(用户,密码),(名称,密码)等。

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

4

1 回答 1

5

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" }
于 2013-01-25T02:54:04.397 回答