gpt4 book ai didi

android - 如何避免 XMLHttpRequest 凭证(NTLM)被缓存在 phonegap/cordova 中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:44 24 4
gpt4 key购买 nike

我一直在想(在 Android/iOS 中)从 XMLHttpRequest 收到的 cookie 存储在哪里......

情况:

我执行 XHR 请求以进行身份​​验证。出于某种原因,这启动了一种 session ,我执行的所有其他请求不再需要凭据。这种情况是需要的,但应用程序中有一个部分需要其他凭据。当我执行另一个 XHR 请求时,无论我使用哪个凭据,它都会继续使用我最初输入的凭据。

我用的是什么:

  • jQueryMobile
  • 有角度的

我注意到的 [ANDROID]:

  • 凭据或 session 在应用重启时被终止!(不是在后台时 - 就像按下后退按钮时 - 它需要完全关闭)。所以我必须重新登录。

我没有成功的尝试:

  • 当我想要使用新凭据时,将参数添加到 URL。

    var xhr = new XMLHttpRequest;
    xhr.open('GET', 'test.html?_=' + new Date().getTime());
    xhr.send();
  • InAppBrowser 功能:

window.open("index.html", "_self", "location=no,clearsessioncache=yes");

我想要的:

  • 我不知道在哪里可以找到该 session ...我真的很想知道它存储在哪里。我需要一种方法来删除/清除它,以便我可以使用其他 XMLHttpCredentials 执行另一个成功的调用。
  • 记住我仍然想使用 XMLHttpRequest 自动提供的缓存功能。

专家的任何帮助将不胜感激。

最佳答案

据我所知,在 Android 上清除这些凭据的唯一方法是重新启动应用程序。如果确实需要,可以以编程方式执行此操作。

在 iOS 上,您可以在 sharedCredentialStorage 中管理保存的凭证.例如,要删除所有凭据:

NSDictionary* credentialsDict = [[NSURLCredentialStorage sharedCredentialStorage] allCredentials];

for (NSURLProtectionSpace* protectionSpace in credentialsDict){
NSDictionary* userNameDict = credentialsDict[protectionSpace];
for (NSString* userName in userNameDict){
NSURLCredential* credential = userNameDict[userName];
[[NSURLCredentialStorage sharedCredentialStorage] removeCredential:credential forProtectionSpace:protectionSpace];
}
}

为了访问 native API,您必须构建一个自定义插件。

关于android - 如何避免 XMLHttpRequest 凭证(NTLM)被缓存在 phonegap/cordova 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37023130/

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