2016-10-28 141 views
0

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

这是我一直使用的是什么:

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

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

回答

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)