Ios Moya-无法使用身份验证凭据调用API
我正在使用django rest API框架开发一个iOS应用程序。但目前,在使用身份验证凭据调用API时,我无法取得进展 我使用Postman和curl成功地调用了api,方法是将Header设置为Ios Moya-无法使用身份验证凭据调用API,ios,swift,authentication,networking,moya,Ios,Swift,Authentication,Networking,Moya,我正在使用django rest API框架开发一个iOS应用程序。但目前,在使用身份验证凭据调用API时,我无法取得进展 我使用Postman和curl成功地调用了api,方法是将Header设置为authenticationbearer。。但我一直无法从iOS应用程序调用它。我使用Moya调用api。我不知道下一步该怎么办 我试过的:(打电话给莫亚时) 当使用莫亚进行身份验证时,我有什么要考虑的吗?或者是用信息。PLIST等等? 或者文档中说这种方法是针对JWT令牌的,也许我的方法不适用于J
authenticationbearer
。。但我一直无法从iOS应用程序调用它。我使用Moya
调用api。我不知道下一步该怎么办
我试过的:(打电话给莫亚时)
当使用莫亚进行身份验证时,我有什么要考虑的吗?或者是用信息。PLIST等等?
或者文档中说这种方法是针对JWT令牌的,也许我的方法不适用于JWT和其他东西。。?给我一些建议 尝试了几个小时后。。我发现是api端点根据内容语言重定向了自己。。因此,我设置的标题在重定向时无效。因此,提前设置i18n url或设置内容语言标题都可以解决我的问题。对于我的情况,我使用
Moya
12.0.1
多目标
plugins = [AccessTokenPlugin(tokenClosure: {
let token = ...
return token
})]
MoyaProvider<MultiTarget>(
plugins: plugins
)
.request(MultiTarget(myAPI)) {
...
}
来源:您的头变量是什么样子的?它真的覆盖了标题是什么吗?我编辑了添加标题变量的问题,我认为应该在需要时添加Accept Language标题。。有什么建议吗?真奇怪。你的API中的标题没有覆盖你的插件吗?没有,我没有覆盖插件。。我认为这是api服务器的问题,它重定向没有语言代码uri的请求,在这个过程中可能会发生一些错误
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"]
}
}
}
plugins = [AccessTokenPlugin(tokenClosure: {
let token = ...
return token
})]
MoyaProvider<MultiTarget>(
plugins: plugins
)
.request(MultiTarget(myAPI)) {
...
}
extension MultiTarget: AccessTokenAuthorizable {
public var authorizationType: AuthorizationType {
guard let target = target as? AccessTokenAuthorizable else { return .none }
return target.authorizationType
}
}