关于 JWT 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IndieCreator
V2EX    问与答

关于 JWT 的问题

  •  
  •   IndieCreator 2023-04-20 12:29:26 +08:00 1433 次点击
    这是一个创建于 952 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近看一个 node 项目。
    accessToken 通过 jsonwebtoken.sign(JwtPayload, private_cert) 获得,
    接收到 FE 请求的时候,通过 jsonwebtoken.verify(accesstoken, public_cert) 来获得 JwtPayload 验证.

    这样其实是不是说,FE/Client 其实不对服务端返回的数据做解密啥的,
    而服务端对非 public 的接口请求通过 jsonwebtoken.verify 做验证请求合法性
    7 条回复    2023-04-20 13:33:50 +08:00
    clickhouse
        1
    clickhouse  
       2023-04-20 12:35:37 +08:00
    JWT 里面的数据你可以认为是明文(就是 Base64 ),JWT 验签是为了防篡改。
    IndieCreator
        2
    IndieCreator  
    OP
       2023-04-20 12:39:10 +08:00
    @clickhouse 嗯嗯,其实这个其实只限制 FE -> Server 数据不被篡改, 不能保证 Server->FE 不被篡改吧,当然 FE 如果有 public cert 的话可以验证是否被篡改
    CEBBCAT
        3
    CEBBCAT  
       2023-04-20 12:51:47 +08:00
    在客户端看来 JWT 只是一个 token ,解码不是必须的。
    而服务端解码是为了获取自己当时编码在 JWT 里面的信息,验签则是为了确认收到的这个 JWT 是自己签发的,未经篡改。

    对于评论区提出的问题,也就是中间人,需要通过 HTTPS 来解决
    IndieCreator
        4
    IndieCreator  
    OP
       2023-04-20 12:55:56 +08:00
    @CEBBCAT 哦哦,明白了,谢谢,其实这个如果这个 token 自动回传机制的话,对于 FE 来说这个其实是透明的
    CEBBCAT
        5
    CEBBCAT  
       2023-04-20 13:02:58 +08:00
    是的,是透明的。不过我刚才想到,JWT 的签名算法有对称的,也有非对称的。如果 FE (你指的是前端对吧?)也想验证 JWT 合法性的话,可以用签发私钥对应的公钥来验证,不过公钥来源又成了一个问题,而且能有多大意义也有待商榷
    fang2hou
        6
    fang2hou  
       2023-04-20 13:13:44 +08:00
    之前做后端 jwt 验证的时候是指定公司内部的一个 api 定期获取所有 kid 的公钥,然后读 jwt 内的 kid 去找公钥验证。
    IndieCreator
        7
    IndieCreator  
    OP
       2023-04-20 13:33:50 +08:00
    @CEBBCAT 嗯嗯。 我指的是非对称加密
    @houshuu 原来这样啊,这把我公钥提供方式的疑问的解决了.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2668 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:08 PVG 23:08 LAX 07:08 JFK 10:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86