• 关于

    Cookie的应用

    的搜索结果

回答

具体区别如下:1、cookie数据存放在客户的浏览器上,不能看到session,session数据放在服务器上,能看到cookie。2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,所以将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在COOKIE中。3、session根据浏览器进程存在而存在,而cookie的生存时间可以设置和调整。4、session必须借助cookie。5、如果要解决负载均衡中的session同步(共享)的问题,其实有很多解决方案,例如ip_hash、memcached、nginx_sticky_module模块,nginx_sticky_module模块需要浏览器支持cookie的,ip_hash通过线上环境观察,如果是2台Web应用服务器在线的话,短期内客户端请求访问量可能不是太平均,但如果以月为单位会发现,其实2台Web应用服务器的请求数基本是平均的。

愚癫 2019-12-02 01:47:02 0 浏览量 回答数 0

问题

如何在iOS的异步请求里加上Cookie

a123456678 2019-12-01 20:27:08 926 浏览量 回答数 2

问题

退出钉钉后会把微应用的cookie清除?

游客yhfbb7tk5i52m 2019-12-01 19:37:12 2277 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

拿PHP提供的session来说,默认使用的是文件存储的方式,会话文件就保存在当前的服务器,一般是/tmp下: session.save_handler=files session.save_path=/tmp PHP的会话机制会给客户端设置一个cookie用来保存sesseion_id,对应服务器上的会话文件/tmp/sess_ sesseion_id 把这些session绑定在本机的Web应用放到 Nginx的upstream应用集群应该是不合适的,就算 设置ip_hash让固定IP只访问一个后端, 但如果客户端IP在会话中改变,那就有可能连上后端其他的服务器,这样会导致找不到会话. 还有如果这台后端服务器宕机,那用户的会话也会丢失. 所以最好还是自己用cookie实现一套适合自己的session机制,比如用mysql内存表或者memcached来保存cookie对应的会话数据,非关键和不敏感的数据直接设置cookie保存到客户端,这样会话数据就不会存储在具体的应用服务器上,方便了使用Nginx的 upstream进行php-fpm应用服务器集群扩展. 引用来自“eechen”的答案 拿PHP提供的session来说,默认使用的是文件存储的方式,会话文件就保存在当前的服务器,一般是/tmp下: session.save_handler=files session.save_path=/tmp PHP的会话机制会给客户端设置一个cookie用来保存sesseion_id,对应服务器上的会话文件/tmp/sess_ sesseion_id 把这些session绑定在本机的Web应用放到 Nginx的upstream应用集群应该是不合适的,就算 设置ip_hash让固定IP只访问一个后端, 但如果客户端IP在会话中改变,那就有可能连上后端其他的服务器,这样会导致找不到会话. 还有如果这台后端服务器宕机,那用户的会话也会丢失. 所以最好还是自己用cookie实现一套适合自己的session机制,比如用mysql内存表或者memcached来保存cookie对应的会话数据,非关键和不敏感的数据直接设置cookie保存到客户端,这样会话数据就不会存储在具体的应用服务器上,方便了使用Nginx的 upstream进行php-fpm应用服务器集群扩展. 回复 @eechen:同样多谢大神,我刚开始学习nginx,太复杂的话反而我怕造成其他问题,ip_hase这样的方式也算是适合我们想在的系统环境了,不是完全“均衡”的负载,但是也能分担单个节点压力,存在节点的宕机风险导致部分用户无法使用,也好过现在单个节点承受的风险,是不是这个道理哈~~这个你最好问下Tengine作者 @shudu,看看有没有可行的方法。把内网特定的IP段用Nginx分流到后端Tomcat上,可以试着这样干: server{if($remote_addr=192.168.0.20){location~\.(jsp|do)${proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$remote_addr;proxy_set_headerHost$host;proxy_passhttp://192.168.0.1:8080;}}} 把来自192.168.0.20的jsp和do请求proxy给后面192.168.0.1的服务器。 条件$remote_addr 那里可以用正则匹配一个IP段,这样应该就可以把该IP段的动态请求导到指定的Tomcat服务器上。后台系统是java吗?回复 @夏天198801:不一定非要序列化,可以后台转换成json,存入memcached,取出json再映射成session回复 @屁屁果:额,这个之前试过,但是后来发现tomcat里面有一个工程的session没有序列化,做不了session共享,上面描述问题里面我也提到过了,我们的开发不好协调,找他们做session序列化没做好回复 @夏天198801:可以扩展tomcat,实现容器级别的session共享,就和应用没有关系了http://www.9iu.org/2011/11/25/tomcat-memcached-session-sso.html是啊,后台是java,容器是tomcat 可以把session托管到memcache或者redis嘛 推荐你使用Tengine: 1、使用Tengine的consistent_hash功能,以你的登录的cookie为key,这样的话一个固定的用户(登录cookie值)可以hash到一台固定的机器上。 2、如果没有登录(即没有登录cookie),则使用round-robin方式(默认的负载均衡方式)。 3、你可以使用if来判断cookie值是否为空。兼容从nginx转tengine有无什么限制?都兼容么?赞一个mark客户端服务器session是靠浏览器cookie维持的,每次去请求都会带一个参数SESSIONID。so...只要把nginx的分发策略设置为根据cookie中的SESSIONID来分发。可以满足你的需求。只要第一次登陆(不管ip是否登陆过)都会走负载,重新分配节点;如果已经访问过(带cookie)则可以保证分配到同一节点。QQ:875881559欢迎交流

爱吃鱼的程序员 2020-06-22 14:22:45 0 浏览量 回答数 0

回答

session_sticky默认配置 cookie=route   path=/ mode=insert 在这种模式下,tengine会在响应中添加一个session cookie,如果没有域名set-cookie头的domain部分为空,浏览器会把该cookie写到当前域名下;如果配置了domain,检查一下配置domain和访问的域名是否相同否则会有跨域set-cookie的内容;另外看一下浏览器是否禁用了cookie功能。 只要set cookie成功,浏览器下次请求会带上该cookie,tengine会使用该cookie实现和后端server的session保持。 方便的话可以把你相关配置贴一下 推荐订阅tengine邮件列表(http://code.taobao.org/mailman/listinfo/tengine-cn) ###### 感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,jboss,jetty,weblogic,resin,WebSphere等),可以在统一监控中心管理应用会话(删除会话,查询会话数据、统计在线会话数等),根本无需使用session_sticky,参考资料: bboss会话共享培训文档 bboss session共享架构及特点  bboss会话共享demo使用指南  bboss session共享使用方法介绍

kun坤 2020-06-20 11:25:03 0 浏览量 回答数 0

回答

session_sticky默认配置 cookie=route   path=/ mode=insert 在这种模式下,tengine会在响应中添加一个session cookie,如果没有域名set-cookie头的domain部分为空,浏览器会把该cookie写到当前域名下;如果配置了domain,检查一下配置domain和访问的域名是否相同否则会有跨域set-cookie的内容;另外看一下浏览器是否禁用了cookie功能。 只要set cookie成功,浏览器下次请求会带上该cookie,tengine会使用该cookie实现和后端server的session保持。 方便的话可以把你相关配置贴一下 推荐订阅tengine邮件列表(http://code.taobao.org/mailman/listinfo/tengine-cn) ######感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,jboss,jetty,weblogic,resin,WebSphere等),可以在统一监控中心管理应用会话(删除会话,查询会话数据、统计在线会话数等),根本无需使用session_sticky,参考资料: bboss会话共享培训文档 bboss session共享架构及特点  bboss会话共享demo使用指南  bboss session共享使用方法介绍

kun坤 2020-06-02 17:32:38 0 浏览量 回答数 0

回答

同问。目前我用发送心跳包的方法,隔一段时间访问一下服务器。应该有更好的办法。###### 这个和你普通Web应用一样的,App也可以用Cookie。你只要在登陆成功后在App里保存下来服务器端返回来的cookie,然后每次App发http请求时带上这个cookie就可以了,服务器端检查cookie,如果过期了,就返回错误码让客户端处理就行了。 ######直接存储cookies 就可以了 不过记得要加密###### 完全退出后再重新打开,或者多天之后再打开应用时,可以尝试自动登录,如果没有在别处登录过,就允许自动登录,像微信一样。 也可以弹出登录界面让用户用手势密码登录,如果不是长时间没有登录过(如半个月),就可以仅凭手势密码登录(类似于记住密码的功能),如果发现长时间没有登录,则弹出用户名/密码界面让用户输入密码登录。如招行客户端、翼支付客户端。 也有应用,手势密码只用在离开应用(如锁屏或切换应用)后重新返回时的安全校验,类似于windows屏保或锁屏后的返回密码。而不用它来自动登录应用。如支付宝客户端。

kun坤 2020-06-11 13:46:45 0 浏览量 回答数 0

回答

" session_sticky默认配置 cookie=route   path=/ mode=insert 在这种模式下,tengine会在响应中添加一个session cookie,如果没有域名set-cookie头的domain部分为空,浏览器会把该cookie写到当前域名下;如果配置了domain,检查一下配置domain和访问的域名是否相同否则会有跨域set-cookie的内容;另外看一下浏览器是否禁用了cookie功能。 只要set cookie成功,浏览器下次请求会带上该cookie,tengine会使用该cookie实现和后端server的session保持。 方便的话可以把你相关配置贴一下 推荐订阅tengine邮件列表(http://code.taobao.org/mailman/listinfo/tengine-cn) ###### 感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,jboss,jetty,weblogic,resin,WebSphere等),可以在统一监控中心管理应用会话(删除会话,查询会话数据、统计在线会话数等),根本无需使用session_sticky,参考资料: bboss会话共享培训文档 bboss session共享架构及特点  bboss会话共享demo使用指南  bboss session共享使用方法介绍"

montos 2020-06-02 12:44:50 0 浏览量 回答数 0

问题

配置服务器Cookie

行者武松 2019-12-01 21:36:44 1250 浏览量 回答数 0

回答

lz好,SLB的会话保持(session)分为4层和7层协议两种方式,针对4层会话保持,采用的是基于IP的方式选择分配服务器,会话会在超过控制台设置的超时时间后就会失效,但是不会因为连接断掉而重新分配给新服务器。 针对7层会话保持,采用的是基于cookie的方式,有“SLB植入Cookie”和“SLB重写Cookie”两种,SLB植入是指由后端服务器来给客户端种 Cookie,针对每次访问请求SLB都会匹配cookie的值来判断将请求分配到哪一台后端服务器上,SLB系统不对Cookie做任何处理;而SLB重写是 指用户可以通过SLB来指定cookie的名称,从而达到针对后端多个应用服务响应不同的会话保持策略的目的。

阿里云支持与服务 2019-12-02 02:55:08 0 浏览量 回答数 0

回答

一、cookie和session cookie和session都是用来跟踪浏览器用户身份的会话方式。 区别: 1、保持状态:cookie保存在浏览器端,session保存在服务器端 2、使用方式: (1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。 Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它 (2)session机制:当服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid。如果有sessionid,服务器将根据该id返回对应session对象。如果客户端请求中没有sessionid,服务器会创建新的session对象,并把sessionid在本次响应中返回给客户端。通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器。如果用户禁用cookie,则要使用URL重写,可以通过response.encodeURL(url) 进行实现;API对encodeURL的结束为,当浏览器支持Cookie时,url不做任何处理;当浏览器不支持Cookie的时候,将会重写URL将SessionID拼接到访问地址后。 3、存储内容:cookie只能保存字符串类型,以文本的方式;session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象) 4、存储的大小:cookie:单个cookie保存的数据不能超过4kb;session大小没有限制。 5、安全性:cookie:针对cookie所存在的攻击:Cookie欺骗,Cookie截获;session的安全性大于cookie。       原因如下:(1)sessionID存储在cookie中,若要攻破session首先要攻破cookie;            (2)sessionID是要有人登录,或者启动session_start才会有,所以攻破cookie也不一定能得到sessionID;            (3)第二次启动session_start后,前一次的sessionID就是失效了,session过期后,sessionID也随之失效。            (4)sessionID是加密的            (5)综上所述,攻击者必须在短时间内攻破加密的sessionID,这很难。 6、应用场景: cookie:(1)判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。     (2)保存上次登录的时间等信息。     (3)保存上次查看的页面     (4)浏览计数

景凌凯 2020-01-09 13:43:57 0 浏览量 回答数 0

回答

tomcat换高一点的版本即可打完收工,你当前使用的版本不支持httponly设置<divclass='ref'> 引用来自“JFinal”的评论tomcat换高一点的版本即可打完收工,你当前使用的版本不支持httponly设置几乎所有的web应用都会用到点js代码,如果该js中有这样的恶意读取cookie并发送给攻击者的情况,httponly就可以保障js无法读取该cookie此外,httponly是极度重要的安全保障,例如登录成功后保存在cookie中的sessionId值,如果没有这个httponly为true的设置,在你应用中的任何js都可以获取该cookie值,并且发送给攻击者,然后攻击者拿到这个值以后,就可以冒充你的身份登录了jfinal提前考虑过tomcat版本问题,不过这个trycatch貌似解决不了,单步调试一下,有结果记得反馈

爱吃鱼的程序员 2020-06-09 10:38:33 0 浏览量 回答数 0

回答

Cookie是一个伟大的发明,它允许Web开发者保留他们的用户的登录状态。但是当你的站点有一个以上的域名时就会出现问题了。在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个cookie,这个cookie对于其它的域名将无效。如果你想让你的用户从你的站点中的其中一个进行登录,同时也可以在其它域名上进行登录,这可真是一个大难题。跨二级域名 我们知道cookie是可以跨二级域名来访问,这个很好理解,例如你 www.test1.com 在的web应用程序创建了一个cookie,要想在bbs.test1.com这样的二级域名对应的应用程序中访问,就必须你在创建cookie的时候设置domain参数domain=test1.com。 以asp.net为例 代码如下: [csharp] view plaincopy HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com"); cookie.Domain = "test1.com"; cookie.Path = "/"; Response.Cookies.Add(cookie); 跨顶级域名   如果我不是二级域名而是完全在不同顶级域名中,例如 www.test1.com 所在的web应用程序创建了一个cookie,想要在 www.test2.com 或其二级域名的应用程序中访问,改怎么办呢?我们知道靠常规反的方法是访问不了的,关键我们就是看看有没有方法可以访问。事实是Cookie可以在一定条件下跨域,而不是随心所欲的实现跨域。   我们来做个测试,看看两个站点 www.test1.com 和 www.test2.com 如何实现cookie跨域访问。 按照常规我们需要有2个顶级域名,并且有DNS服务器才能够配置域名,否则我们是无法验证的,但是这里我们也没有必要那么麻烦,我们可以通过修改hosts文件来模拟。在 c:windowssystem32driversetc 中有 hosts文件,在末尾添加上 127.0.0.1 www.test1.com127.0.0.1 www.test2.com 两行,就可以将本机用上面的域名访问本机回环地址了。我们只需要在IIS上部署一套程序,ip为本机回环地址,用两个域名分别访问就可以了。   我们新建三个页面,分别是 Default.aspx、SSO.ashx、GetCookie.aspx。   其中Default.aspx是 www.test1.com 的页面,访问的地址是 http://www.test1.com/Default.aspx。看一下前台代码,它没有任何后台代码 [html] view plaincopy <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <script type="text/javascript"> var _frm = document.createElement("iframe"); _frm.style.display = "none"; _frm.src = "http://www.test2.com/SSO.ashx"; document.body.appendChild(_frm); </script> </div> </form> </body> </html> 另外一个是 SSO.ashx 页面,我们认为它是 www.test2.com 的页面,前台没有任何代码,后台代码如下: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Web.SessionState; namespace Admin10000.Web { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class SSO : IHttpHandler { public void ProcessRequest(HttpContext context) { HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com"); cookie.Domain = "test2.com"; cookie.Path = "/"; cookie.Expires = DateTime.Now.AddMinutes(10000); context.Response.Cookies.Add(cookie); context.Response.ContentType = "text/plain"; context.Response.AddHeader("P3P", "CP=CAO PSA OUR"); context.Response.Write(""); } public bool IsReusable { get { return false; } } } } 最后是 GetCookie.aspx 页面,它同样是www.test2.com下的页面,没有前台代码,只有后台代码: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Admin10000.Web { public partial class GetCookie : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["name"] != null) { Response.Write(Request.Cookies["name"].Value); } } } } 好了,现在我们访问测试,通过访问 ttp://www.test1.com/Default.aspx 之后,这时会通过iframe载入调用SSO.ashx这个页面,执行后台代码创建cookie,然后访问 http://www.test2.com/GetCookie.aspx 我们得到了相应的cookie。说明在www.test1.com下创建的cookie在www.test2.com下是可以访问到的。 要注意的地方:   admin10000.com 提示 SSO.ashx 的后台代码中有一句:context.Response.AddHeader("P3P", "CP=CAO PSA OUR"); 是用来设置P3P响应头。是因为IE浏览器支持的P3P导致iframe跨站点时cookie被阻止,无法创建cookie。(FireFox目前还不支持P3P安全特性,FireFox自然也不存在此问题。不需要添加P3P响应头。)   通过iframe的src属性将test1.com域下的cookie值作为get参数重定向到test2.com域下SSO.ashx页面上,SSO.ashx获取test1.com域中所传过来的cookie值,并将所获取到值写入cookie中,这样就简单的实现了cookie跨域的访问。   另外Default.aspx页面也可改为JS调用形式: [html] view plaincopy <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Admin10000.Web.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <script type="text/javascript" src="http://www.test2.com/SSO.ashx"></script> </div> </form> </body> </html>

小旋风柴进 2019-12-02 02:00:58 0 浏览量 回答数 0

问题

钉钉登录接口事件

一级大神 2019-12-01 22:04:15 1480 浏览量 回答数 0

问题

免登问题,钉钉登录接口事件

一级大神 2019-12-01 22:04:15 2188 浏览量 回答数 0

回答

http://blog.csdn.net/wilsonke/article/details/38704005###### jsessionid所引起的问题 在spring MVC当使用RedirectView或者"redirect:"前缀来做重定向时,Spring MVC最后会调用: response.sendRedirect(response.encodeRedirectURL(url)); 对于IE来说,打开一个新的浏览器窗口,第一次访问服务器时,encodeRedirectURL()会在url后面附加上一段jsessionid,如果初始的url为"http://www.sina.com.cn",最终得到的url为"http://www.sina.com.cn;jsessionid=2jcligmgi6fh"。 这是典型的Java做事的方式,其他语言的服务器端平台并不会这样做。这个jsessionid很多时候会引起严重的问题,例如,如果你使用上述带有jsessionid的url直接访问新浪的网站,IE会向你报告:找不到服务器。 解决方法: 1. 不通过Spring MVC做重定向,自己直接调用: response.sendRedirect(url); return null; //告诉Spring MVC我已经完成了处理 2. 修改Spring MVC的代码,将: response.sendRedirect(response.encodeRedirectURL(url)); 改为: response.sendRedirect(url); 3. encodeRedirectURL()仅在无法确定浏览器是否支持cookie的时候才会在url后面附加上jsessionid,如果它能找到一个jsessionid的cookie,它就认为浏览器是支持cookie的。因此可以自己创建一个jsessionid的cookie来欺骗encodeRedirectURL()。 Cookie cookie = new Cookie("jsessionid", "2jcligmgi6fh"); cookie.setMaxAge(Integer.MAX_VALUE); response.addCookie(cookie); 然后再调用Spring MVC的重定向功能就没有问题了: return new ModelAndView("redirect:"+url); 无疑,这里最好的方法是第3种方法。   转向相同的域,因为之前服务器已经设置了jsessionid这个cookie,并且可以得到这个cookie,因此就不必像上面第一次那样采用url重写的方式,url后面不会附加上jsessionid。因此当你的应用只会转向相同的域时,直接使用Spring MVC的重定向(实际上是最后使用encodeRedirectURL())不会有任何问题。 相关资料: Spring MVC RedirectView appends jsessionid: http://robobruin.blogspot.com/2005/12/spring-mvc-redirectview-appends.html JSESSIONID considered harmful: http://randomcoder.com/articles/jsessionid-considered-harmful Cookie和会话状态的工作原理及Cookie欺骗|Cookie,会话状态,Cookie欺骗: http://www.yuanma.org/data/2006/0908/article_1489.htm######引用自:http://blog.csdn.net/wilsonke/article/details/38704005

爱吃鱼的程序员 2020-06-03 18:03:27 0 浏览量 回答数 0

回答

可以直接写 cookie,你想:阻止默认事件行为也是要写在回调函数里的,如果无法保证先于默认行为执行,怎么能保证阻止成功呢?但是回调函数里的异步处理操作是无法保证的,写 cookie 则不在此例。顺便一提,如果用户禁用了 cookie 怎么办?(虽然很罕见)我觉得更好的办法是在提交时往 URL 上拼接一个 query params(比如你的 ID),通过监听 location 的变化来处理这件事情。这也是现代 JavaScript 应用程序客户端路由常用的方式。又或者表单的提交改为 Ajax 请求,直接禁用默认的提交事件,此时页面是不会刷新的,你可以保证在提交成功之后记录表单 ID,这样会更健壮一些。

a123456678 2019-12-02 02:09:49 0 浏览量 回答数 0

问题

请教,点击导航栏关闭按钮,为什么内核浏览器没有自动清除cookie呢?

idontknow99 2019-12-01 21:09:36 2533 浏览量 回答数 0

回答

可以直接写 cookie,你想:阻止默认事件行为也是要写在回调函数里的,如果无法保证先于默认行为执行,怎么能保证阻止成功呢?但是回调函数里的异步处理操作是无法保证的,写 cookie 则不在此例。顺便一提,如果用户禁用了 cookie 怎么办?(虽然很罕见)我觉得更好的办法是在提交时往 URL 上拼接一个 query params(比如你的 ID),通过监听 location 的变化来处理这件事情。这也是现代 JavaScript 应用程序客户端路由常用的方式。又或者表单的提交改为 Ajax 请求,直接禁用默认的提交事件,此时页面是不会刷新的,你可以保证在提交成功之后记录表单 ID,这样会更健壮一些。5月13日回答 · 5月13日更新 评论

小旋风柴进 2019-12-02 02:29:39 0 浏览量 回答数 0

问题

有没有不基于cookie的单点登录策略?

蛮大人123 2019-12-01 20:06:53 1460 浏览量 回答数 1

问题

应用服务器做了负载均衡之后如何保持用户登录状态的会话信息?

蛮大人123 2019-12-01 20:06:36 2497 浏览量 回答数 1

回答

问题一、本期视频介绍了一步两步的哪几个应用? 婚礼管家   空气表情   考不糊 问题二、一步两步最初从物理机搬到阿里云,主要是出于哪两个原因 ? 经济原因, 使用阿里云可以人性化配置资源, 同时不用担心硬件过期, 安全性也过硬            /   被攻击, 阿里云的云盾有效防护 我也有几个疑问: 1.从云架构来看先通过CDN再经过SLB.  那问题就是. 如果使用SLB的会话保持,它会使用COOKIE, 但是CDN是针对静态资源的, 这样会导致CDN命中率降低(阿里云客服说的COOKIE会影响),  那么请问是如何解决这个问题的? 2.才两个云服务器做了3个应用?  还用了好几年?  请问用户数多少啊? 能带动吗? 我看CPU也不咋高呀.

huangjinshe 2019-12-02 03:03:20 0 浏览量 回答数 0

问题

如何实现 [ 跨域单点登录 ] ?

小旋风柴进 2019-12-01 19:50:25 1300 浏览量 回答数 1

问题

大型网站选择独立cdn域名(与主站不同根域)的原因

enj0y 2019-12-01 20:22:10 16297 浏览量 回答数 9

回答

swoole 是怎么处理内存泄漏的? ###### 引用来自“yak”的评论 swoole 是怎么处理内存泄漏的? swoole本身并不存在内存泄露, 你说的是使用swoole后应用内存泄露吧?  简单粗暴的方法就是设定下每个进程处理请求的最大次数, 这样达到次数后进程就会自然销毁, 内存就会释放, 这样可以把内存占用控制在一定范围内。 如果是打算查找内存泄露的问题, 就要看看哪些对象在请求结束后还被引用。 比如, 在laravel中, $cookie = Cookie::make('key', 'value') 会自动建立一个对象, 这个对象会被Facade, Application,以及程序调用的上下文引用。 程序退出后, Facade和Application中对于cookie的引用仍然存在, 如果不采取处理的话, 就会发生内存泄露。 不过好在现在PHP这方面已经相当稳定, 只要小心处理, 不会有什么问题的。

爱吃鱼的程序员 2020-06-04 16:20:06 0 浏览量 回答数 0

问题

钉钉微应用session问题

NullPoint 2019-12-01 22:05:42 49 浏览量 回答数 0

回答

Re发布自己的应用链接 http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.06Cy6v#免登服务 参照免登开发文档,自行写程序将钉钉userid与OA的ID绑定。页面第一次打开时识别用户身份写入session或cookie。 如果OA你修改不了源文件那还是请开发商定制下登陆就好。 ------------------------- Re发布自己的应用链接 主攻php,流程都一样的一语言没什么关系 1、拿accesstoken 2、生成signature 3、页面引用js-sdk 4、页面加载后Dingtalk.config 进行初始化 5、初始化完成后调用 DingTalkPC.runtime.permission.requestAuthCode 获取当前用户code 6、拿到code后ajax到后台 7、后台收到code后通过 "https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE" 用code换用户详细信息 8、判定oa用户信息表里与获取到的userid绑定的用户的权限 9、权限正确的话就调用oa写Session/cookie,给前台返回代码,前台根据返回代码展现主界面或错误信息

浮云若海 2019-12-02 02:15:43 0 浏览量 回答数 0

回答

请参阅我的博客文章,了解如何使用手机中存储的凭据对App Engine应用进行身份验证。 可以通过编程方式验证用户。在Python SDK中,appengine_rpc模块执行此功能。简而言之,过程是这样的: 使用ClientLogin获取给定用户名和密码的一次性身份验证令牌。 使用参数continue = http:// localhost /&auth = authtoken(其中authtoken是您从第1步获得的一次性令牌)向yourapp.appspot.com/_ah/login发出POST请求。 拦截返回的302响应并捕获返回的Google Cookie。 在所有后续请求中提供cookie。 有关详细信息,请参见上面链接的appengine_rpc.py的源代码。

LiuWH 2020-01-20 09:07:53 0 浏览量 回答数 0

问题

app与后台交互 token 问题:报错

kun坤 2020-06-06 14:23:26 0 浏览量 回答数 1

问题

钉钉对于第三方H5的免登如何实现?

小林饺子 2019-12-01 22:04:55 11559 浏览量 回答数 4
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站