我使用express-session和一个nativescript Webview认证到一个node.js服务器。 服务器向我发送回一个cookie(connect.sid),其中包含我将用于访问node.js应用程序的sessionid。
我无法读取来自iOS上服务器的响应的connect.sid cookie。 我目前正在使用NSHTTPCookieStorage.sharedHTTPCookieStorage.cookies,其中包含一个connect.sid,但其值不正确。
我使用以下代码在Android上做到了这一点:
var cookieManager = android.webkit.CookieManager.getInstance();
var cks = cookieManager.getCookie(myserverdomain);
我试图在iOS上做同样的事情:
const sharedCookieInstance: any =
NSHTTPCookieStorage.sharedHTTPCookieStorage;
const cookies: any = sharedCookieInstance.cookies();
但是,正如我之前写的那样,我在iOS上从中获得的connect.sid并不是“最终”值。(它似乎是您执行第一个请求时实例化的第一个connect.sid)>
我已经阅读了一半的网络,但没有找到答案。有人可以帮我吗?
预先感谢
//Android, working
var cookieManager = android.webkit.CookieManager.getInstance();
var cks = cookieManager.getCookie(myserverdomain);
//iOS, not working
const sharedCookieInstance: any =
NSHTTPCookieStorage.sharedHTTPCookieStorage;
const cookies: any = sharedCookieInstance.cookies();
答案 0 :(得分:0)
我知道这是一个较晚的帖子。但仍然可以,如果它可以帮助某人。
WKWebsiteDataStore.defaultDataStore().httpCookieStore.getAllCookies(cookies => {
console.log('Received Cookies Are:'+ cookies)
//here is the way to get all the cookie information as a string.
NSHTTPCookie.requestHeaderFieldsWithCookies(cookies).objectForKey('Cookie')
})
注意:这是iOS本机代码中的类似方法。