V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Liang11734
V2EX  ›  京东

Cookie 禁用后,无法登录京东

  •  
  •   Liang11734 · 2019-02-20 08:35:49 +08:00 · 6657 次点击
    这是一个创建于 2138 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在讨论到单点登录时,使用 token 存储在 Cookie 中,当 Cookie 被禁用后,无法进行登录,以及购物车后续的功能都无法进行, 但是,意外的是,在 Cookie 禁用后,京东也无法实现登录 求大神们给个解决的方案

    46 条回复    2019-02-21 10:06:08 +08:00
    reus
        1
    reus  
       2019-02-20 08:43:08 +08:00   ❤️ 5
    有啥意外的?
    给你钥匙,你转身扔了,锁就开不了,有啥意外的?
    namesc
        2
    namesc  
       2019-02-20 08:51:49 +08:00
    没有 cookie 保存登录状态,京东怎么知道你有没有登录,要登录必须要打开 cookie 功能。
    jzmws
        3
    jzmws  
       2019-02-20 09:03:14 +08:00
    cookie 开启了就可以了, 不过现在的移动端 cookie 现在能不用就不用了
    keith1126
        4
    keith1126  
       2019-02-20 09:09:48 +08:00
    你这话说的...没有 cookie 不能保存登录状态,很奇怪吗?
    xfspace
        5
    xfspace  
       2019-02-20 09:11:21 +08:00 via Android   ❤️ 14
    但是,意外的是,在停电后,台式电脑也无法开机 求大神们给个解决的方案
    gps949
        6
    gps949  
       2019-02-20 09:13:51 +08:00   ❤️ 1
    @xfspace UPS 电源了解一下 (老实人滑稽
    xfspace
        7
    xfspace  
       2019-02-20 09:17:04 +08:00 via Android   ❤️ 4
    @gps949 并不指明市电,UPS 输出也是电

    一位在体育器材厂专业抬杠的表示🌚
    imdong
        8
    imdong  
       2019-02-20 09:23:28 +08:00
    断网以后,我自己的网站打不开就算了,没想到百度居然也打不开!
    onionnews
        9
    onionnews  
       2019-02-20 09:25:01 +08:00 via Android
    感谢科普
    ggmood
        10
    ggmood  
       2019-02-20 09:26:14 +08:00
    那就不用京东咯,京东很多东西比沃尔玛贵,比华润更贵
    liuxey
        11
    liuxey  
       2019-02-20 09:29:17 +08:00
    你这前后文的“但是”毫无转折关系,Cookie 是现在保持登陆状态最泛用的方式,但是,意外的是,我觉得你并没有真正的理解什么是 Cookie
    ZavierXu
        12
    ZavierXu  
       2019-02-20 09:34:46 +08:00
    Cookie 这么好吃,你们为什么要扔掉它!!!
    guojing666
        13
    guojing666  
       2019-02-20 09:44:51 +08:00
    你发明了一种“但是体”,可以把玩可以盘......它
    dark3212
        14
    dark3212  
       2019-02-20 10:13:50 +08:00
    京东有线下店,可以解决你这个问题
    oott123
        15
    oott123  
       2019-02-20 10:14:06 +08:00 via Android
    虽然楼上都在嘲讽,而楼主的问题也的确有点过分了。

    但我要说的是,保持会话除了 cookies 之外当然也有别的办法。比如手机互联网早期 wap 时代用的:在所有链接上增加 sessionid,通过 sessionid 来识别用户。当然,这个方案有很大的安全隐患,开发成本也不小,收益远没有它的好处来得多。
    otakustay
        16
    otakustay  
       2019-02-20 10:16:12 +08:00
    好奇怪啊,没有 cookie 不能登录曾经确实是很奇怪的事情啊,都会在禁用 cookie 的时候把 sessionid 加在 URL 中的
    正如曾经 JS 禁用网站也要保持可用是一种常识一样,这些实践随着时代的推移正在消失。现在的孩子们没经历过那样的时代不了解是没问题的,但是拿着嘲讽的语气去表达会不会有些过分
    otakustay
        17
    otakustay  
       2019-02-20 10:16:48 +08:00
    再者,只要理解 HTTP 无状态,无论如何也不会把登录和 Cookie 认为是强绑定的唯一实现吧,咋想的……
    learnshare
        18
    learnshare  
       2019-02-20 10:19:43 +08:00
    只是京东不愿意处理这种极端状况而已
    Liang11734
        19
    Liang11734  
    OP
       2019-02-20 10:27:35 +08:00
    楼上的回答是我想要的
    但是面试的时候,面试官会把问题抛给我们,
    假如:
    面试官问:Cookie 被禁用,如何实现单点登录
    因为 Cookie 被禁用是一个极端的情况
    reus
        20
    reus  
       2019-02-20 10:30:27 +08:00   ❤️ 2
    @otakustay 讨论的前提就是京东没有用 url 也没有用 local storage 之类的其他方式去保存登录信息,所以禁用了 cookie 就不能登录,这和你说的没有任何关系。难不成你能要求京东使用其他方式?房东就只有钥匙给你,你非要说我要指纹,我要刷卡,我要刷脸,就是不要钥匙,可行吗?
    est
        21
    est  
       2019-02-20 10:31:53 +08:00
    大家不要笑。我感觉欧盟地区的人应该也会有这个问题。。。没同意网站用 cookie 凭什么功能不能用了
    wu67
        22
    wu67  
       2019-02-20 11:31:42 +08:00
    cookie 不能用? 劳资写 local storage ~,~
    shapl
        23
    shapl  
       2019-02-20 11:35:46 +08:00
    @otakustay #16 sessionid 加在 URL 中。。。安全?
    beiyu
        24
    beiyu  
       2019-02-20 11:55:21 +08:00
    @shapl #23 sessionid 加在 cookie 中和 url 中基本是没有区别的 都是显性可见的
    shapl
        25
    shapl  
       2019-02-20 11:57:25 +08:00
    @beiyu #24 普通用户会复制 cookies 出去分享?还是复制 URL 出去分享,串号。。。
    beiyu
        26
    beiyu  
       2019-02-20 12:04:27 +08:00
    @shapl #25 也是哦 那如果真要在 url 中传输 sessionid 的话 后端需要做进一步验证了 例如 IP...不过好像也是不安全的
    tanranran
        27
    tanranran  
       2019-02-20 12:04:35 +08:00
    @wu67 #22 #22 IE6
    morethansean
        28
    morethansean  
       2019-02-20 12:05:16 +08:00
    @beiyu 所以我看到一个好的物品把 url 发给朋友,他就登录我的账号了?
    这权限直接加在 url 中,在现在的网络环境下不被喷爆?
    beiyu
        29
    beiyu  
       2019-02-20 12:07:06 +08:00
    @morethansean #28 嗯是的 如果后端不进一步验证的话 这样对普通用户来说确实是不安全的
    luoway
        30
    luoway  
       2019-02-20 12:09:09 +08:00
    这个问题本质上是问 web 前端有哪些跨页面存储的方案。
    考虑一下岗位性质,面试官对该问题的重视程度,评估一下面试官水平吧
    lhx2008
        31
    lhx2008  
       2019-02-20 12:26:51 +08:00
    跟踪用户无非就三种方法
    1. Cookie
    2. SeesionId 挂在参数上,全部 a 链接都要修改
    3. SeesionId 存到 localStorage 里面,由 js 脚本主动发起 ajax 请求登录

    所以楼主想选哪种都行
    lhx2008
        32
    lhx2008  
       2019-02-20 12:29:00 +08:00   ❤️ 1
    @lhx2008 当然,既然楼主说了 “但是”,那么就必须三种方法都要加上,然后再加个降级策略,否则,但是, 关掉 Cookie 的 IE6 就登录不了了。
    otakustay
        33
    otakustay  
       2019-02-20 12:42:58 +08:00
    @reus 我不认同这个前提,在我看来楼主就是惊讶于京东居然没有做禁用 cookie 的降级措施
    wolfie
        34
    wolfie  
       2019-02-20 12:55:42 +08:00
    很正常啊,天猫也一样。
    580a388da131
        35
    580a388da131  
       2019-02-20 13:14:29 +08:00 via iPhone
    禁用第三方后,淘宝也不能用了。
    reus
        36
    reus  
       2019-02-20 13:47:08 +08:00
    @otakustay http-only 的 cookie 是现在唯一值得采用的保存验证信息的措施,其他任何所谓“降级措施”都是自讨苦吃。
    kernel
        37
    kernel  
       2019-02-20 15:15:28 +08:00 via Android
    @lhx2008 本地存储不是只有 cookie, localstorage 和 indexeddb 都行,做成 webapp 的话可能还更方便
    mokeyjay
        38
    mokeyjay  
       2019-02-20 15:43:32 +08:00
    能说说你为什么非要禁用 Cookie 吗?
    xfspace
        39
    xfspace  
       2019-02-20 18:29:57 +08:00 via Android
    Sessionid 放 URL,能接触日志的可提 URL 去下单

    @beiyu
    Liang11734
        40
    Liang11734  
    OP
       2019-02-20 19:48:16 +08:00
    @mokeyjay:其实这是一个面试问题
    wangxiaoaer
        41
    wangxiaoaer  
       2019-02-20 20:28:47 +08:00
    @est #21 不同意网站的协议,凭什么用人家的网站。
    rockss
        42
    rockss  
       2019-02-20 22:35:16 +08:00
    给你还是给 JD。
    给你:换 APP 啊!
    给 JD:给了有没人理我。
    est
        43
    est  
       2019-02-21 09:51:44 +08:00
    @lhx2008 这三种方法之外其实也有办法的。

    比如我返回一个 etag。浏览器下次会返回 if-modified 什么的。
    lhx2008
        44
    lhx2008  
       2019-02-21 09:53:10 +08:00
    @est 这个我好像真没想过,好像理论上也没有问题
    lhx2008
        45
    lhx2008  
       2019-02-21 09:56:21 +08:00
    @est 不过似乎每次都要发一个新 etag,这个跟踪成本有点高。
    est
        46
    est  
       2019-02-21 10:06:08 +08:00
    @lhx2008 写个中间件不是什么难事。成本还行。这只是思路之一。办法可多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2564 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.