gpt4 book ai didi

ios - GraphQL Apollo iOS 客户端响应 header

转载 作者:可可西里 更新时间:2023-11-01 05:49:14 26 4
gpt4 key购买 nike

我正在使用 Apollo iOS 客户端进行 GraphQL 查询。我需要在 header 中传递 Auth token ,我可以使用以下代码实现它 -

let apolloAuth: ApolloClient = {
let configuration = URLSessionConfiguration.default
let token = "Bearer \(UserDefaults.standard.string(forKey: "UserToken") ?? "")"
// Add additional headers as needed
configuration.httpAdditionalHeaders = ["Authorization": token]

let url = URL(string: "...URL.../graphql")!

return ApolloClient(networkTransport: HTTPNetworkTransport(url: url, configuration: configuration))
}()

我的提取查询如下 -

apolloAuth.fetch(query: referralQuery){ (result, error) in

if let error = error {
print(error.localizedDescription)
return
}else{
self.referralId = result?.data?.referrals?.id
}

}

现在我的服务器在每个请求后返回一个刷新的身份验证 token ,这是响应 header 的一部分。我需要从响应 header 中获取 token ,但我无法找到一种方法来做到这一点。有人可以指导我吗。

最佳答案

URLSessionConfiguration 对象带有一个共享的HTTPCookieStorage 单例对象。使用该配置设置 apollo 客户端后,您可以使用服务器将身份验证 token 存储在 cookie 中,然后在每次请求时将 cookie 发送到客户端。自动地,您将能够像这样访问该 cookie:

apollo.fetch(query: GraphQLQuery()) { result, error in
if let error = error { fatalError(error.localizedDescription) }
if let data = result?.data {
// do something with data
}
self.getCookies()
}

func getCookies() {
let cookies = HTTPCookieStorage.shared.cookies
if let c = cookies {
print(c)
// if your server sent a token inside a cookie, you will see it here
}
}

关于ios - GraphQL Apollo iOS 客户端响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46069683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com