在讨论到单点登录时,使用 token 存储在 Cookie 中,当 Cookie 被禁用后,无法进行登录,以及购物车后续的功能都无法进行, 但是,意外的是,在 Cookie 禁用后,京东也无法实现登录 求大神们给个解决的方案
1
reus 2019-02-20 08:43:08 +08:00 5
有啥意外的?
给你钥匙,你转身扔了,锁就开不了,有啥意外的? |
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
keith1126 2019-02-20 09:09:48 +08:00
你这话说的...没有 cookie 不能保存登录状态,很奇怪吗?
|
5
xfspace 2019-02-20 09:11:21 +08:00 via Android 14
但是,意外的是,在停电后,台式电脑也无法开机 求大神们给个解决的方案
|
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 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 2
@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 1
@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:给了有没人理我。 |