
在讨论到单点登录时,使用 token 存储在 Cookie 中,当 Cookie 被禁用后,无法进行登录,以及购物车后续的功能都无法进行, 但是,意外的是,在 Cookie 禁用后,京东也无法实现登录 求大神们给个解决的方案
1 reus 2019-02-20 08:43:08 +08:00 有啥意外的? 给你钥匙,你转身扔了,锁就开不了,有啥意外的? |
2 namesc 2019-02-20 08:51:49 +08:00 没有 cookie 保存登录状态,京东怎么知道你有没有登录,要登录必须要打开 cookie 功能。 |
3 jzmws 2019-02-20 09:03:14 +08:00 cookie 开启了就可以了, 不过现在的移动端 cookie 现在能不用就不用了 |
4 zackwu 2019-02-20 09:09:48 +08:00 你这话说的...没有 cookie 不能保存登录状态,很奇怪吗? |
5 xfspace 2019-02-20 09:11:21 +08:00 via Android 但是,意外的是,在停电后,台式电脑也无法开机 求大神们给个解决的方案 |
8 imdong 2019-02-20 09:23:28 +08:00 断网以后,我自己的网站打不开就算了,没想到百度居然也打不开! |
9 onionnews 2019-02-20 09:25:01 +08:00 via Android 感谢科普 |
10 ggmood 2019-02-20 09:26:14 +08:00 那就不用京东咯,京东很多东西比沃尔玛贵,比华润更贵 |
11 liuxey 2019-02-20 09:29:17 +08:00 你这前后文的“但是”毫无转折关系,Cookie 是现在保持登陆状态最泛用的方式,但是,意外的是,我觉得你并没有真正的理解什么是 Cookie |
12 ZavierXu 2019-02-20 09:34:46 +08:00 Cookie 这么好吃,你们为什么要扔掉它!!! |
13 guojing666 2019-02-20 09:44:51 +08:00 你发明了一种“但是体”,可以把玩可以盘......它 |
14 dark3212 2019-02-20 10:13:50 +08:00 京东有线下店,可以解决你这个问题 |
15 oott123 &nbs; 2019-02-20 10:14:06 +08:00 via Android 虽然楼上都在嘲讽,而楼主的问题也的确有点过分了。 但我要说的是,保持会话除了 cookies 之外当然也有别的办法。比如手机互联网早期 wap 时代用的:在所有链接上增加 sessionid,通过 sessionid 来识别用户。当然,这个方案有很大的安全隐患,开发成本也不小,收益远没有它的好处来得多。 |
16 otakustay 2019-02-20 10:16:12 +08:00 好奇怪啊,没有 cookie 不能登录曾经确实是很奇怪的事情啊,都会在禁用 cookie 的时候把 sessionid 加在 URL 中的 正如曾经 JS 禁用网站也要保持可用是一种常识一样,这些实践随着时代的推移正在消失。现在的孩子们没经历过那样的时代不了解是没问题的,但是拿着嘲讽的语气去表达会不会有些过分 |
17 otakustay 2019-02-20 10:16:48 +08:00 再者,只要理解 HTTP 无状态,无论如何也不会把登录和 Cookie 认为是强绑定的唯一实现吧,咋想的…… |
18 learnshare 2019-02-20 10:19:43 +08:00 只是京东不愿意处理这种极端状况而已 |
19 Liang11734 OP 楼上的回答是我想要的 但是面试的时候,面试官会把问题抛给我们, 假如: 面试官问:Cookie 被禁用,如何实现单点登录 因为 Cookie 被禁用是一个极端的情况 |
20 reus 2019-02-20 10:30:27 +08:00 @otakustay 讨论的前提就是京东没有用 url 也没有用 local storage 之类的其他方式去保存登录信息,所以禁用了 cookie 就不能登录,这和你说的没有任何关系。难不成你能要求京东使用其他方式?房东就只有钥匙给你,你非要说我要指纹,我要刷卡,我要刷脸,就是不要钥匙,可行吗? |
21 est 2019-02-20 10:31:53 +08:00 大家不要笑。我感觉欧盟地区的人应该也会有这个问题。。。没同意网站用 cookie 凭什么功能不能用了 |
22 wu67 2019-02-20 11:31:42 +08:00 cookie 不能用? 劳资写 local storage ~,~ |
26 beiyu 2019-02-20 12:04:27 +08:00 @shapl #25 也是哦 那如果真要在 url 中传输 sessionid 的话 后端需要做进一步验证了 例如 IP...不过好像也是不安全的 |
28 morethansean 2019-02-20 12:05:16 +08:00 @beiyu 所以我看到一个好的物品把 url 发给朋友,他就登录我的账号了? 这权限直接加在 url 中,在现在的网络环境下不被喷爆? |
29 beiyu 2019-02-20 12:07:06 +08:00 @morethansean #28 嗯是的 如果后端不进一步验证的话 这样对普通用户来说确实是不安全的 |
30 luoway 2019-02-20 12:09:09 +08:00 这个问题本质上是问 web 前端有哪些跨页面存储的方案。 考虑一下岗位性质,面试官对该问题的重视程度,评估一下面试官水平吧 |
31 lhx2008 2019-02-20 12:26:51 +08:00 跟踪用户无非就三种方法 1. Cookie 2. SeesionId 挂在参数上,全部 a 链接都要修改 3. SeesionId 存到 localStorage 里面,由 js 脚本主动发起 ajax 请求登录 所以楼主想选哪种都行 |
32 lhx2008 2019-02-20 12:29:00 +08:00 @lhx2008 当然,既然楼主说了 “但是”,那么就必须三种方法都要加上,然后再加个降级策略,否则,但是, 关掉 Cookie 的 IE6 就登录不了了。 |
34 wolfie 2019-02-20 12:55:42 +08:00 很正常啊,天猫也一样。 |
35 580a388da131 2019-02-20 13:14:29 +08:00 via iPhone 禁用第三方后,淘宝也不能用了。 |
36 reus 2019-02-20 13:47:08 +08:00 @otakustay http-only 的 cookie 是现在唯一值得采用的保存验证信息的措施,其他任何所谓“降级措施”都是自讨苦吃。 |
37 kernel 2019-02-20 15:15:28 +08:00 via Android @lhx2008 本地存储不是只有 cookie, localstorage 和 indexeddb 都行,做成 webapp 的话可能还更方便 |
38 mokeyjay 2019-02-20 15:43:32 +08:00 能说说你为什么非要禁用 Cookie 吗? |
40 Liang11734 OP @mokeyjay:其实这是一个面试问题 |
41 wangxiaoaer 2019-02-20 20:28:47 +08:00 @est #21 不同意网站的协议,凭什么用人家的网站。 |
42 rockss 2019-02-20 22:35:16 +08:00 给你还是给 JD。 给你:换 APP 啊! 给 JD:给了有没人理我。 |