2017-09-22 9 views
0

api 용 django rest framework을 사용하여 iOS 앱을 개발 중입니다. 하지만 현재 인증 자격 증명을 사용하여 api를 호출 할 수는 없습니다.모야 - 인증 자격 증명으로 api를 호출 할 수 없습니다.

우체국을 사용하여 API를 호출하고 헤더를 Authentication Bearer <token>으로 설정하여 말려 들지는 못했습니다.하지만 iOS 앱에서 헤더를 계속 호출하지 못했습니다. API 호출에 Moya을 사용하고 있습니다. 그리고 나는 내가 다음에해야 할 일을 모른다.

내가 시도하는 것 : (모야를 호출 할 때)

let token = "abcde12345sometoken" 
let plugin = AccessTokenPlugin(tokenClosure: token) 
let provider = MoyaProvider<AccountAPI>(plugins : [plugin]) 
provider.request(.getAccountProfile(oauth_id: oauth_id, provider: "facebook")) { (result) in 
    // doing something with result 
} 

및 구성 API는 다음과 같이 : 인증 또는 어쩌면의 Info.plist와 함께 모야를 사용하는 경우

extension AccountAPI : TargetType, AccessTokenAuthorizable { 

    // codes conforming variables to TargetType protocol 

    public var authorizationType: AuthorizationType { 
     switch self { 
     case .getFacebookAccountToken: 
      return .none 
     default: 
      return .bearer 
     } 
    } 

    public var headers: [String: String]? { 
     switch self { 
      case .getFacebookAccountToken, .getEmailAccountToken: // post requests 
      return ["Content-type":"application/x-www-form-urlencoded"] 
     default: 
      return ["Content-type":"application/json"] 
     } 
    } 
} 

이 있나요 나는 생각한다 곧? 또는 문서에이 방법이 JWT 토큰에 대한 것이며, 아마도 내 메서드가 JWT가 아닌 다른 것입니다. 조언 좀 해줘!

+0

헤더 변수는 어떤 모양입니까? 실제로 머리글이 무엇입니까? – user805981

+0

나는 헤더 var를 추가하는 질문을 편집했고, 필요하다면 Accept-Language 헤더를 추가해야한다고 생각합니다. 제안 사항은 무엇입니까? –

+0

이상합니다. 따라서 API의 헤더가 플러그인을 재정의하지 않습니까? – user805981

답변

0

몇 시간 후에 이것을 시도해 보았습니다. 나는 API 끝점이 콘텐츠 언어에 따라 리디렉션된다는 것을 알았습니다. 그래서 내가 설정 한 헤더는 리디렉션 될 때 죽었습니다. 따라서 미리 i18n URL을 설정하거나 콘텐츠 언어 헤더를 설정하면 문제가 해결됩니다.