gpt4 book ai didi

javascript - 使用 angularjs 让 cookie 永不过期

转载 作者:行者123 更新时间:2023-11-30 00:16:12 27 4
gpt4 key购买 nike

我正在使用 angularjs cookie。

https://docs.angularjs.org/api/ngCookies/service/$cookies

我正在使用 $cookies 来存储用户名和密码。我知道这是不好的做法,但暂时把它放在一边。我希望用户登录一次,除非清除 cookie,否则无需再次登录。但是问题是,chrome浏览器关闭后,用户下次访问网页时需要重新登录,因为cookies已经不存在了。我希望 cookie 永不过期。

这里是写在工厂里的相关代码;

.factory('AuthenticationService',
['$base64', '$http', '$cookies', '$rootScope', '$timeout', 'configuration',
function ($base64, $http, $cookies, $rootScope, $timeout, $configuration) {

var service = {};

service.Login = function (username, password, callback) {
//login code
};

service.SetCredentials = function (username, password) {
var authdata = $base64.encode(username + ':' + password);

$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
$cookies.put('username', username);
$cookies.put('authdata', authdata);
};

return service;
}])

如何让cookies永不过期并在浏览器关闭后仍然存在?

最佳答案

根据我的阅读,您不能真正将其设置为永不过期 - 请参阅:https://stackoverflow.com/a/532638/669664

我想出的最佳解决方案是将其设置为 future 的日期 - 但要注意 *nix 系统的 2038 错误 (http://en.wikipedia.org/wiki/Year_2038_problem)

使用 Angular 1.4+ - 使用 $cookiesProvider 选项:

            var expireDate = new Date();
expireDate.setTime(2144232732000);
if (thisIsAValue=== undefined) {
$cookies.putObject("thisIsYourCookieObject", {
"foo": 1,
"bar": 1
}, {'expires': expireDate});
}

我知道这是一篇旧帖子 - 我希望这可能对某人有所帮助。

关于javascript - 使用 angularjs 让 cookie 永不过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586494/

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