0

我无法以经过身份验证的用户身份登录 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"]
4

1 回答 1

0

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

    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)
于 2016-10-28T04:09:56.740 回答