gpt4 book ai didi

angularjs - Angular 的 $cookies 仅适用于 'localhost'

转载 作者:行者123 更新时间:2023-12-02 07:33:13 27 4
gpt4 key购买 nike

请做好准备,一个奇怪的 Angular/IIS 问题即将到来:我创建了一个 Angular 1.4.0 应用程序,它在用户登录后使用 $cookies 存储 oauth 访问 token 。

每当我将网站部署到 IIS 服务器(我尝试了 Azure 和远程服务器)时,在 localhost 上完美运行的内容就会失败。我不明白为什么。它始终是相同的过程,但保存/读取 cookie 似乎只能在本地工作。

后端(带有 API)在 Azure 上运行,尚未被触及。前端始终与此 Azure-API 连接,但仅在本地托管时才工作。

你有什么想法吗?我的代码如下所示:

$http({
url: "/api/account/login",
method: "POST",
data: loginData,
headers: {'Content-Type' : 'application/x-www-form-urlencoded; charset=utf-8'}
}).then(
function (success) {
$cookies.put('access_token', success.data.access_token);
$cookies.put('refresh_token', success.data.refresh_token);

// 'test' contains the correct token on localhost
// 'test' is undefined whenever deployed to an iis
var test = $cookies.get('access_token');

deferred.resolve(results);
},
function (error) {
deferred.reject({"loginError":-1})
}
);

难道IIS有一个特殊的cookie策略来阻止cookie访问?

更新1:请不要误会我的意思,我不希望 IIS 管理或跟踪我的 session 状态。我只是想被允许使用 cookie 来存储我的 OAUTH 访问 token 。

更新2:有趣的事实:在登录过程后发送到服务器的第一个请求中,可以从 cookie 中读取访问 token 。此后的每个请求都会失败,因为 $cookies.access_token 未定义。我(以旧神和新神名义)发誓我不会删除它!

我感谢每一个提示或帮助!

最佳答案

您可以记录并检查从 IIS 获得的 success.data.access_token 值吗

如果是 session cookie token ,那么您必须检查 IIS 配置。

请参阅下面的链接以验证 session Cookie 设置

https://technet.microsoft.com/en-us/library/cc754725(v=ws.10).aspx

关于angularjs - Angular 的 $cookies 仅适用于 'localhost',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782802/

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