V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yurong333333
V2EX  ›  问与答

B 站登录原理

  •  
  •   yurong333333 · 112 天前 · 8695 次点击
    这是一个创建于 112 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没登录之前,打开两个 b 站的网页 A 和 B ,在 A 网页登录,然后刷新一下 B 网页,发现 B 网页也显示登录了,这是什么原理呢?

    第 1 条附言  ·  111 天前
    本话题延伸出的一个问题。

    问题:在手机浏览器上打开知乎的一个问题,然后下载 app ,打开 app 之后,会跳转到下载 app 的那个问题。
    这是怎么做到的?打包 app 的时候就把问题 id 写到包里面了吗?
    第 2 条附言  ·  111 天前
    两个问题已结帖。感谢大佬们的解答。谢谢谢谢~
    第 3 条附言  ·  111 天前
    该帖子已经变味了。。。各位大佬请不要留言了,感谢。
    第 4 条附言  ·  111 天前
    132 条回复    2022-03-11 11:55:25 +08:00
    1  2  
    ch2
        1
    ch2  
       112 天前 via iPhone
    Cookie
    qrobot
        2
    qrobot  
       112 天前
    localStorage cookie
    emeab
        3
    emeab  
       112 天前
    曲奇饼吧.
    fsdrw08
        4
    fsdrw08  
       112 天前 via Android
    登录后,B 站服务器放了个 jwt 到浏览器本地了
    popok
        5
    popok  
       112 天前   ❤️ 85
    你是第一天上网吗?哪个网站不是这样,你 A 登录了,浏览器就有 cookie 了。

    你说 B 不刷新,就自动显示登录,倒还算高级呢。
    yurong333333
        6
    yurong333333  
    OP
       112 天前   ❤️ 2
    @popok 感谢,已 block 。
    codespots
        7
    codespots  
       112 天前   ❤️ 11
    补充楼上的说的不刷新的情况:localstorage 和 sessionStorage 有 onstorage 事件
    xwayway
        8
    xwayway  
       112 天前
    @codespots 牛逼牛逼,作为一个半吊子前端,长见识了
    justrand
        9
    justrand  
       112 天前   ❤️ 1
    这个楼主有碰到不是这样的网站吗?
    popok
        10
    popok  
       112 天前   ❤️ 79
    @yurong333333 #6 这么简单的问题都问的出来,还好意思说已 block ,伸手党+玻璃心
    iddddg
        11
    iddddg  
       112 天前   ❤️ 26
    请问楼主 block 楼上的原因是什么?戳到痛处了还是?
    yurong333333
        12
    yurong333333  
    OP
       112 天前   ❤️ 1
    @iddddg 回答问题没必要阴阳怪气,所以 block 了。
    yurong333333
        13
    yurong333333  
    OP
       112 天前
    @justrand 没在其他网站试过,纯粹是刚在 b 站遇到该问题。
    wunonglin
        14
    wunonglin  
       112 天前
    百度《网站登录原理》,我看到一堆答案,用 google 搜的话更多
    popok
        15
    popok  
       112 天前   ❤️ 36
    @yurong333333 #13 你是没上过其他网站把???全世界只要又登录功能的网站,99.9999%都是这个情况,你 TM 给我来个发现新大陆似的提问。。。。还说我阴阳怪气了,我笑一个了
    yurong333333
        16
    yurong333333  
    OP
       112 天前
    @wunonglin 感谢
    yurong333333
        17
    yurong333333  
    OP
       112 天前
    @codespots 牛,这就去查查是个啥。感谢。
    sunny2580839896
        18
    sunny2580839896  
       112 天前
    我在 A 标签已经是登录状态,再次打开 B 标签页,此时 A 标签页登录掉了,咋回事
    745839
        19
    745839  
       112 天前
    我以为要讨论什么新的技术
    fgwmlhdkkkw
        20
    fgwmlhdkkkw  
       111 天前
    借楼再问一个问题,在手机浏览器上打开知乎的一个问题,然后下载 app ,打开 app 之后,会跳转到下载 app 的那个问题。
    这是怎么做到的?
    打包 app 的时候就把问题 id 写到包里面了吗?
    yurong333333
        21
    yurong333333  
    OP
       111 天前
    @sunny2580839896 坐等 v 站大佬解答吧,最好给出是哪个网站。
    ulosggs
        22
    ulosggs  
       111 天前
    @justrand 12306 算一个,永远无法预测 12306 的登录状态 🐶
    yurong333333
        23
    yurong333333  
    OP
       111 天前
    @fgwmlhdkkkw 好问题,坐等大佬回答。
    yurong333333
        24
    yurong333333  
    OP
       111 天前
    @745839 已经有几个延伸的问题了,大佬去回答一下呀。
    fgwmlhdkkkw
        25
    fgwmlhdkkkw  
       111 天前
    @fgwmlhdkkkw 还是说,app 的文件名包含了这个信息,那 app 运行时能拿到这个文件名吗?
    c1273082756
        26
    c1273082756  
       111 天前
    经验+3
    zhaol
        27
    zhaol  
       111 天前
    同域的网页是可以共享 cookie 或者 storage 的。
    unclemcz
        28
    unclemcz  
       111 天前 via Android   ❤️ 2
    看了帖子我也有个问题,block 是单向的吗?看前面 op block 了 @popok ,popok 还是能看到 op 的帖子,没 block 过别人没有经验,如果双向 block 设置是不是更合理?
    zhaol
        29
    zhaol  
       111 天前
    @zhaol 延伸问题,可以了解一下 URL Scheme
    NCry
        30
    NCry  
       111 天前
    @fgwmlhdkkkw 是 android 系统吧,ios 没有遇到过这种情况。打包的时候把问题 id 写入是不可能的,不然每有一次问题导流的下载就要打包一次,太耗费资源了。我猜测是在应用安装完成之后广播通知给 app ,app 内做对应处理。
    littleylv
        31
    littleylv  
       111 天前
    第一个问题懒得回

    延伸问题,但凡你去谷歌一下,成千上万的答案等着你
    GrayXu
        32
    GrayXu  
       111 天前
    @fgwmlhdkkkw 实时打包不太可能吧。。感觉这样传 scheme 过去的情况应该和你用的应用市场是耦合的。

    另外 op 确实没有掌握搜索引擎这项技能。
    littleylv
        33
    littleylv  
       111 天前   ❤️ 2
    PS:好问、好学,跟“伸手党”,是两个不同的概念
    yurong333333
        34
    yurong333333  
    OP
       111 天前
    @unclemcz 您是说您还可以看到那个被 block 的人还在这个帖子继续发言吗?我因为 block 他了,所以没看到发言。不知道被我 block 的人能不能继续发言额。
    yurong333333
        35
    yurong333333  
    OP
       111 天前
    @littleylv 感谢。也是从帖子看到了关键词才了解了更多。
    Qseven
        36
    Qseven  
       111 天前
    我看到了这个标题,想进来学习一下。
    misdake
        37
    misdake  
       111 天前   ❤️ 10
    @fgwmlhdkkkw
    网页在尝试打开 app 时,会走 uri scheme 尝试打开一个链接,本地应用注册了的话就能接收到,打开对应的内容。
    点击下载 app 的时候也会把这个链接写入剪贴板。应用安装好打开的时候查剪贴板,发现有内容也会打开。

    可以现场试一下,在弹出下载提示的时候,剪贴板里是不是已经有 [email protected]://...的内容了
    rogi
        38
    rogi  
       111 天前
    同域的情况下饼干和缓存是共享的
    dingwen07
        39
    dingwen07  
       111 天前   ❤️ 1
    https://www.redhat.com/en/topics/cloud-native-apps/stateful-vs-stateless


    @unclemcz #28 V2 的 block 可以算是自损技,block 之后仅仅是你看不到对方(帖子和回复隐藏,回复 /提及不提醒),对方和没有 block 这个用户的其他用户都不受影响,对方甚至都不知道被 block 了。我个人是很喜欢 V2 这种,用户使用 block (或者 Hide )应该是为了整理自己的时间线,排除掉一些不想看见的内容。当然双向 B 有个好处,就是防止恶意用户污染自己的内容,这在 V2 一般通过 AT 站长解决。双向 B 的一个问题是可能会有人把 Block 当作让对方不爽的工具。
    fgwmlhdkkkw
        40
    fgwmlhdkkkw  
       111 天前
    @misdake 哦,忘了剪切板了。厉害👍
    fgwmlhdkkkw
        41
    fgwmlhdkkkw  
       111 天前
    @misdake 你可能不信,这个问题在我脑子里保存有 2 年多了……
    Vindroid
        42
    Vindroid  
       111 天前   ❤️ 1
    第二个问题以知乎举例,当你在网页上点开“在 APP 上查看”会跳到下载 app 页面,然后你点击下载应用后,你可以在记事本里直接粘贴会发现有个知乎的 scheme 链接,在知乎 app 打开后会查你剪切板内容,然后就能直接跳转到在那个问题页面了
    yurong333333
        43
    yurong333333  
    OP
       111 天前
    @fgwmlhdkkkw 哈哈,有问题就问问,v 站大佬多。虽然我这次提问被好多大佬骂伸手党,但是还是解决了自己的疑问。在此还是感谢各位大佬的解答,嘿嘿。
    yurong333333
        44
    yurong333333  
    OP
       111 天前
    @dingwen07
    @Vindroid
    @misdake
    感谢大佬们的回答。
    shily
        45
    shily  
       111 天前
    @fgwmlhdkkkw #20 不可能存到包里呀,这个需要动态生成包,显然不太现实;这样还有另外一个缺点,就是清除完应用数据后,再次打开就会再次进到很久很久以前的问题中。

    我想到一种解决方案,限制是需要 知乎 的包需要从应用市场下载,并且应用市场支持 installreferer 功能。
    installreferer 的功能是在应用安装后的第一次启动时通知它的安装来源。这样的话,页面上显示的安装按钮可以把当前的问题 ID 编码到 installreferer 中,应用安装完毕,用户启动时,就会收到 referer, 然后解析问题 ID 跳转页面就可以了。
    yoke123
        46
    yoke123  
       111 天前
    估计被你 block 的人默认你是码农了。
    unclemcz
        47
    unclemcz  
       111 天前
    @dingwen07 #39 谢谢,明白了。
    虽然我觉得 block 这个功能只会加重类似信息茧房的副作用,也一直理解不了崇尚自由的 v2 管理者会设计 block ;但是如果出发点是为了过滤一个人发出的信息,应该同时让自己也被特定人过滤才符合逻辑,就比如“我不想理你,也请你不要理我”的意思,以上只是单纯的从逻辑上抛出自己的看法。
    yurong333333
        48
    yurong333333  
    OP
       111 天前
    @yoke123 实不相瞒,我就是码农。。。小白一枚
    1423
        49
    1423  
       111 天前
    @unclemcz 理解成退订就可以了,论坛默认关注了所有人,block 就是 unfo
    yurong333333
        50
    yurong333333  
    OP
       111 天前
    @unclemcz 双向 block ,我不想理你,你也千万别来打扰我。这个观点很难不支持。
    dingwen07
        51
    dingwen07  
       111 天前
    @unclemcz #47
    block 一个用户之后,你无法在整个论坛看到他了,也就是说,“我不想看见你,你理不理我我不在意,反正我看不见你”。反而是双向 block (比如禁止一个用户回复我的帖子)有限制言论自由的危险。
    daimubai
        52
    daimubai  
       111 天前   ❤️ 10
    #5#6:浓缩版的《农夫与蛇》
    hidemyself
        53
    hidemyself  
       111 天前   ❤️ 1
    @dingwen07 但是被 block 的用户会收到通知。输出一顿,然后来一句“已 block”,个人心理上不能接受。
    Sixyuan
        54
    Sixyuan  
       111 天前
    感谢,已 block 。哈哈哈哈😆
    fkdtz
        55
    fkdtz  
       111 天前
    @popok 兄弟这就是你的不对了,你应该跪下回答。
    popok
        56
    popok  
       111 天前
    @fkdtz #55 😛
    triptipstop
        57
    triptipstop  
       111 天前
    我之前发帖问的问题比这高级多了,都还有人骂我巨婴。不能接受。
    huntrue
        58
    huntrue  
       111 天前
    @popok 你这么直接把正确答案说出来,不是显得楼主不聪明了吗?
    yurong333333
        59
    yurong333333  
    OP
       111 天前
    @triptipstop 害,下次悄悄 block 就得了。
    sinORcos
        60
    sinORcos  
       111 天前   ❤️ 1
    惊了,这种人在 V2 还能活着?请 @Livid 裁决吧

    “双向 block ,我不想理你,你也千万别来打扰我。这个观点很难不支持。”你 block 了别人,还要别人自动 block 你,这简直就是对言论自由的赤裸裸的挑战,令人极度不适。
    Daylight1993
        61
    Daylight1993  
       111 天前
    为什么我在家申请的 QQ 号,到公司也能登陆。这是什么原理
    loveuqian
        62
    loveuqian  
       111 天前   ❤️ 2
    问题 2 应该不是复制粘贴这种伎俩吧。。。
    反正我之前做的是延迟深度链接,Deferred Deep Linking
    belin520
        63
    belin520  
       111 天前
    我以为突破了 B 站反爬虫模拟登陆的技术限制
    popok
        64
    popok  
       111 天前   ❤️ 1
    @Daylight1993 #61 因为你聪明的小脑子记住了密码呢,亲
    anzu
        65
    anzu  
       111 天前   ❤️ 21
    你问老师问题,老师一边解答一边大骂你怎么能问这么愚蠢的问题。完事你一句感谢,已 block 。
    何况回答你的是陌生网友,没有给你解答的义务。只要问题能得到解答,其它都是次要的。
    block 显得你的感谢并非发自真心,虚伪,不如不说
    Mac
        66
    Mac  
       111 天前
    我最近研究 cookie 的存取,发现有的网站 cookie 简直就离谱,用户名套个 base64 直接就用了,-_-||
    yurong333333
        67
    yurong333333  
    OP
       111 天前
    @anzu 阿这,我错了。对不起那位 popok 大佬。还是感谢 popok 大佬的解答。
    yurong333333
        68
    yurong333333  
    OP
       111 天前
    @Mac 小网站能跑就行吧
    heeeeeem
        69
    heeeeeem  
       111 天前   ❤️ 7
    啊 这就 block 了,这承受能力是初中生水平吧,但这问题确实又像没用过电脑的中老年人提出来的
    izoabr
        70
    izoabr  
       111 天前
    @popok #5 真有可能,因为有的带后台刷新的
    shuxhan
        71
    shuxhan  
       111 天前
    @popok 那就算没有全局刷新,也至少有个检测到了会自动局部刷新的操作,无论如何都避不开
    xiangyuecn
        72
    xiangyuecn  
       111 天前
    乌烟瘴气的一个帖子🐶
    wonderfulcxm
        73
    wonderfulcxm  
       111 天前 via iPhone
    @heeeeeem 求楼主年龄?
    wonderfulcxm
        74
    wonderfulcxm  
       111 天前 via iPhone
    本话题延伸出的一个问题。🔼
    Cielsky
        75
    Cielsky  
       111 天前 via Android   ❤️ 1
    太玻璃心了,你这不适合上互联网
    cais
        76
    cais  
       111 天前
    @sunny2580839896 可能这个网站做了功能比如访问登录页的时候清空 session 或者 cookie
    popok
        77
    popok  
       111 天前   ❤️ 1
    @cais #76 有些网站只允许一个实例,会有互相排斥的机制。
    比如管家婆这种,你另外标签页一登陆,原来那个标签页会自动注销。至于实行方法就不一定了
    deplivesb
        78
    deplivesb  
       111 天前   ❤️ 6
    这都能 block ,op 真的是玻璃心。不仅玻璃心,如果是个计算机行业从业者(看 op 之前的记录 至少是个 javaer )却完全没听过 cookie 之类的东西,也完全没听过 uri scheme ,基础知识我认为是没有的。那你更需要的是自我反思一下
    BJL
        79
    BJL  
       111 天前   ❤️ 9
    现在的像 OP 这样的年轻人,傻逼一样的
    sunny2580839896
        80
    sunny2580839896  
       111 天前
    @cais #76 就某个标签页,在新标签页打开,再回到原来网页就被登出了
    hitoto
        81
    hitoto  
       111 天前   ❤️ 6
    这种问题推荐你去 CSDN 提问,那里的老哥们更懂一些
    cais
        82
    cais  
       111 天前
    @sunny2580839896 那可能跟 77 说的一样 具体我也不清楚
    killerv
        83
    killerv  
       111 天前
    @Mac 我还见过有个网站有保存密码的功能,直接把用户名密码存储在 cookie
    RedBeanIce
        84
    RedBeanIce  
       111 天前 via iPhone
    那我也 block 楼主算了,over
    codespots
        85
    codespots  
       111 天前
    @killerv 所以现在各家都改进了,不再叫做记住用户名密码了,而是叫做记住登录状态了,安全性要高了很多
    @Mac 在 66 楼提到的估计就是记住登录状态,但可能实现上出了问题
    vocaloid
        86
    vocaloid  
       111 天前
    我想说,之前有次脑抽我问老师一个非常简单的问题还被大骂了一顿....
    qqqqqcy
        87
    qqqqqcy  
       111 天前   ❤️ 1
    @fgwmlhdkkkw 这个需要被下载的 app 、浏览器、系统都打通才行。你可以了解一下 deeplink ,相当于是 app 层级的地址,例如对于已经安装过的 app ,你用任意浏览器扫码一个相应的 deeplink 地址(例如你可以把这个淘宝的 deeplink 转成二维码试试:tbopen://m.taobao.com/tbopen/index.html?&action=ali.open.nav&module=h5&h5Url=https%3A%2F%2Fwww.tmall.com&appName=%e7%99%be%e5%ba%a6&appkey=24532550 ),会打开淘宝并且跳转指定页面

    下载其实类似,一般这种都是广告,投放 app 的时候可以填 deeplink 。你用的手机浏览器(或者任意 app )点击广告下载完安装包之后,需要调用系统提供的 api 才能触发安装,调用时候可以传一个 deeplink ,这样安装完之后会用这个链接打开 app 而不是直接打开首页

    一个简单的验证方法是,如果下载下来的这个 apk ,你自己点击安装一般是只能打开首页的
    psklf
        88
    psklf  
       111 天前   ❤️ 1
    楼主估计真的第一天上网
    buttenkill
        89
    buttenkill  
       111 天前   ❤️ 2
    这也能吵起来?太自以为是了吧,你也把我 block 了吧
    cutchop
        90
    cutchop  
       111 天前
    。。。这不是正常的吗?哪个网站不是这样?
    bluehr
        91
    bluehr  
       111 天前
    我以为是什么新奇技术被挖掘出来了,楼主要是计算机大一新生问这个问题我能理解,如果是工作了,问这个问题,我表示非常不能理解。。。
    Ncanback
        92
    Ncanback  
       111 天前   ❤️ 1
    @popok op 可能觉得你语气的问题?
    你如果:
    你是刚接触这方面的么?很多网站都有采用这个技术,你 A 登录了,浏览器就有 cookie 了。
    你说 B 不刷新,就自动显示登录,就有些高级呢。

    换一种表达方式会让人更容易接受吧。
    yurong333333
        93
    yurong333333  
    OP
       111 天前
    @Ncanback 我只是客观得陈述一个问题。。。
    0o0O0o0O0o
        94
    0o0O0o0O0o  
       111 天前   ❤️ 2
    @Ncanback #92 可能是因为联系 OP 的职业,提出这个问题实在让人匪夷所思吧,反正我是无法想象一个使用电脑至少九年的会翻墙会上 GitHub 的 java 开发在这些年里是怎么样完美避开这个常识的
    JustinJie
        95
    JustinJie  
       111 天前   ❤️ 1
    本话题延伸出一个问题。🔼
    我比较想要知道楼主薪资!不知道会不会打击到我
    yurong333333
        96
    yurong333333  
    OP
       111 天前
    @JustinJie 月薪不到 100w
    yurong333333
        97
    yurong333333  
    OP
       111 天前
    @0o0O0o0O0o 是我的锅啦。刚想到就直接赖 V 站提问了,其实直接 google 就行。
    learningman
        98
    learningman  
       111 天前
    如果是普通人,大家会试着解释甚至用上比喻。
    但是大家都是开发,这种基础知识你不知道你就是菜逼,很合理吧
    yurong333333
        99
    yurong333333  
    OP
       111 天前
    @learningman 合理。
    ragnaroks
        100
    ragnaroks  
       111 天前   ❤️ 3
    有感而发,我刚来的时候发了个贴子,如何在 windows 上不申请管理员权限的情况下获得一个进程的网络 IO 详情(收发字节),一堆人估计都没做过 windows 开发上来就是“性能计数器”,在我提到性能计数器不能做到这个事情之后,也是一堆喷我的。

    后来这个问题在一位刘姓 MVP 好友的帮助下解决了,但是我在 V 站基本不会在提问任何技术问题了。一是思考逻辑不一样,回帖的人默认你与他有同等理解;二是无意义回复多,类似“你这个问题谷歌有”,并且假定你没有搜索过(实际上也确实符合大多数场景)。

    在 V 站享有较高的码字自由,但是总有人目的就是为了作对
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4037 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 118ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.