我想知道当用户点击退出时我是否可以删除我所有网站的cookie,因为我使用此功能来删除cookie但是它无法正常工作:
setcookie("user",false);
Run Code Online (Sandbox Code Playgroud)
有没有办法在PHP中删除一个域的cookie?
通常,浏览器将cookie分组到单个Cookie标头中,例如:
Cookie: a=1; b=2
Run Code Online (Sandbox Code Playgroud)
标准是否允许将这些标题作为单独的标题发送,例如:
Cookie: a=1
Cookie: b=2
Run Code Online (Sandbox Code Playgroud)
或者他们总是必须在同一条线上?
我想用JQuery删除cookie; 我试过这个
$.cookie('name', '', { expires: -1 });
Run Code Online (Sandbox Code Playgroud)
然后我刷新页面,cookie仍然存在:
alert('name:' +$.cookie('name'));
Run Code Online (Sandbox Code Playgroud)
为什么?谢谢
我正在使用Axios从客户端向Express.js服务器发送请求.
我在客户端设置了一个cookie,我想从所有Axios请求中读取该cookie,而不是手动添加它们来手动请求.
这是我的客户端请求示例:
axios.get(`some api url`).then(response => ...
Run Code Online (Sandbox Code Playgroud)
我试图通过在Express.js服务器中使用这些属性来访问标头或cookie:
req.headers
req.cookies
Run Code Online (Sandbox Code Playgroud)
它们都不包含任何cookie.我正在使用cookie解析器中间件:
app.use(cookieParser())
Run Code Online (Sandbox Code Playgroud)
如何让Axios自动在请求中发送cookie?
编辑:
我在客户端设置cookie如下:
import cookieClient from 'react-cookie'
...
let cookie = cookieClient.load('cookie-name')
if(cookie === undefined){
axios.get('path/to/my/cookie/api').then(response => {
if(response.status == 200){
cookieClient.save('cookie-name', response.data, {path:'/'})
}
})
}
...
Run Code Online (Sandbox Code Playgroud)
虽然它也使用Axios,但它与问题无关.一旦设置了cookie,我只想在我的所有请求中嵌入cookie.
我们的Django应用程序具有以下会话管理要求.
在阅读了文档,Django代码和一些与此相关的博客文章后,我提出了以下实现方法.
要求1
通过将SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True,可以轻松实现此要求.
要求2
我已经看到一些建议使用SESSION_COOKIE_AGE来设置会话到期时间.但是这种方法存在以下问题.
即使用户正在使用该应用程序,该会话也始终在SESSION_COOKIE_AGE结束时到期.(这可以通过使用自定义中间件在每个请求上将会话到期设置为SESSION_COOKIE_AGE来防止,或者通过将SESSION_SAVE_EVERY_REQUEST设置为true来保存每个请求的会话.但是由于使用了SESSION_COOKIE_AGE,下一个问题是不可避免的.)
由于cookie的工作方式,SESSION_EXPIRE_AT_BROWSER_CLOSE和SESSION_COOKIE_AGE是互斥的,即cookie在浏览器关闭或指定的到期时间到期.如果使用SESSION_COOKIE_AGE并且用户在cookie过期之前关闭浏览器,则会保留cookie并重新打开浏览器将允许用户(或任何其他人)进入系统而无需重新进行身份验证.
Django仅依赖于存在的cookie来确定会话是否处于活动状态.它不会检查与会话一起存储的会话到期日期.
可以使用以下方法来实现此要求并解决上述问题.
要求3
当我们检测到会话已过期时(在上面的自定义SessionMiddleware中),在请求上设置一个属性以指示会话到期.此属性可用于向用户显示适当的消息.
要求4
使用JavaScript检测用户不活动,提供警告以及扩展会话的选项.如果用户希望扩展,则向服务器发送保持活动脉冲以扩展会话.
要求5
使用JavaScript检测用户活动(在长期业务操作期间)并向服务器发送保持活动脉冲以防止会话过期.
上面的实现方法似乎很精细,我想知道是否有一个更简单的方法(特别是对于要求2).
任何见解都将受到高度赞赏.
我正在开发一个使用服务器会话的PhoneGap应用程序.它需要cookie来处理会话.此外,还应处理来自负载均衡器的cookie.所以没有办法解决.你如何处理PhoneGap应用程序中的Cookie?
我已经完成了一些研究:
比方说,我有一个应用程序发送以下HTTP标头设置为名为"a"的cookie:
Set-Cookie: a=1;Path=/;Version=1
Set-Cookie: a=2;Path=/example;Version=1
Run Code Online (Sandbox Code Playgroud)
如果我/example在服务器上访问这两个路径都是有效的,那么我有两个名为"a"的cookie!由于浏览器不发送任何路径信息,因此无法区分这两个cookie.
Cookie: a=2; a=1
Run Code Online (Sandbox Code Playgroud)
该案件应如何处理?选择第一个?创建一个包含所有cookie值的列表?或者这种情况应该被视为开发人员的错误?
我有一个服务器,它向我的Android应用程序发送一个会话cookie,用于认证通信.我正在尝试使用指向同一服务器的URL加载WebView,并且我正在尝试传递会话cookie以进行身份验证.我观察到它间歇性地工作,但我不知道为什么.我使用相同的会话cookie在我的服务器上进行其他调用,这些调用永远不会失败.我只是在尝试在WebView中加载URL时才发现此问题,并且每次都不会发生这种情况.很沮丧.
下面是我用来执行此操作的代码.任何帮助将不胜感激.
String myUrl = ""http://mydomain.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = getCookie();
if(sessionCookie != null){
String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain();
cookieManager.setCookie(myUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl(myUrl);
Run Code Online (Sandbox Code Playgroud) 如何更改phpmyadmin自动注销时间?
它将在1440秒后自动退出,这对我来说非常低.如何更改选项或完全删除登录请求?