Drupal服务无法以经过身份验证的用户身份登录

时间:2016-10-28 03:05:41

标签: drupal-7 drupal-services

我无法以经过身份验证的用户身份登录Drupal服务。我已尝试过“基本身份验证”设置,“http身份验证”,而且没有身份验证,似乎没有任何区别。我使用管理员登录详细信息。验证用户登录详细信息的结果相同。我能够返回数据,例如允许匿名用户访问的投票。当我直接在网站上试用它时,我可以作为经过身份验证的用户登录,例如example.com/ios1/user/1。但是使用我的Xcode7 swift2 api,每次我的drupal日志显示我只是作为匿名用户连接。因此,当我尝试GET查询用户详细信息(需要身份验证)时,它会返回拒绝访问权限。我需要什么代码头?

这就是我一直在使用的:

    let user = "exampleName"
    let password = "examplePass"

    let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!
    let base64Credentials = credentialData.base64EncodedStringWithOptions([])
    let headers = ["Content-Type : application/json"]

1 个答案:

答案 0 :(得分:0)

解决。在Drupal服务中,我选择了“http基本身份验证”,并且必须将标头更改为此标头,并在“alamofire”请求中添加“headers:headers”,如下所示:

    let headers = ["Authorization": "Basic \(base64Credentials)"]

    //instead if this: let headers = ["Content-Type : application/json"]

和Alamofire请求是;

    Alamofire.request(.GET, Endpoint, parameters: nil, headers: headers, encoding: .JSON)
        .response { request, response, data, error in
            debugPrint(response)
            print(request)
            print (response)
            print (error)