2017-09-22 6 views
0

api用のdjango rest frameworkを使用してiOSアプリケーションを開発しています。しかし、現在のところ、認証資格情報でapiを呼び出すときには、私は先に進めることができません。Moya - 認証資格情報でapisを呼び出すことができません

ヘッダーをAuthentication Bearer <token>と設定して、Postmanとcurlを使用してAPIを呼び出すことに成功しましたが、iOSアプリケーションから呼び出しても失敗しました。私はMoyaを使ってapiを呼び出しています。そして私は次に何をすべきか分かりません。

私が試した何

:として(モヤを呼び出すとき)

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:

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"] 
     } 
    } 
} 

認証のためにまたは多分のInfo.plistでモヤを使用しているとき、私は検討すべきものはありますし、そう? 文書によると、このアプローチはJWTトークン用であり、おそらく私の方法はJWT用ではないとか..アドバイスをください!

+0

ヘッダー変数はどのように見えますか?ヘッダーが実際に上書きされますか? – user805981

+0

私は質問のヘッダーvarを追加編集し、私はそれが必要なときにAccept-Languageヘッダーを追加する必要があると思う..任意の提案? –

+0

それは変です。 APIのヘッダーはプラグインをオーバーライドしません。 – user805981

答えて

0

これを試してから数時間後に、私はそれがコンテンツ言語に基づいて自身をリダイレクトすることがわかった。私が設定したヘッダーはリダイレクトされると死んでしまう。したがって、事前にi18n URLを設定するか、コンテンツ言語ヘッダーを設定することで、私の問題が解決されます。

関連する問題