chunkingName
V2EX  ›  问与答

请问后端大佬是如何通过 token 获取用户信息的

  •  
  •   chunkingName · Mar 19, 2023 · 2660 views
    This topic created in 1159 days ago, the information mentioned may be changed or developed.

    前两天面试,面试官问我后端是如何通过 token 拿到用户信息的,我说先查 token 是否失效,然后根据 token 查 userId 但我应该是回答错了,然后我上网搜答案,搜出来的也千奇百怪,还有说前端可以根据 token 直接拿到用户信息的,有没有后端大佬指教以下,后端生成 token 和验证并使用 token 的流程 PS:我是前端

    13 replies    2023-03-20 12:30:12 +08:00
    mooyo
        1
    mooyo  
       Mar 19, 2023
    JWT token 可以直接把 userID 啥的非敏感信息塞进去方便拿出来,不过怎么设计都可以吧 没啥绝对的对和错。
    renmu
        2
    renmu  
       Mar 19, 2023 via Android
    如果是 jwt ,那直接 base64 解码 payload 就可以了。
    ila
        3
    ila  
       Mar 20, 2023 via Android
    后端编码了个人信息成 token,返回给前端,
    前端带着 token 请求后端,
    后端解码 token,得到信息。
    PerFectTime
        4
    PerFectTime  
       Mar 20, 2023
    jwt 的 jti 是用户 id 或者与用户 id 有关的数据,直接查就好了
    kongkx
        5
    kongkx  
       Mar 20, 2023 via iPhone
    个人觉得这个问题问得很含糊,没有上下文无法作答。前端面试,可能问的是前后端数据传递吧,比如后端是如何获取 token 的?
    chunkingName
        6
    chunkingName  
    OP
       Mar 20, 2023
    @kongkx 不是 他问的就是后端如何根据 token 拿到用户信息的,可能他想听到的答案就 jwt 吧
    connectError
        7
    connectError  
       Mar 20, 2023
    @chunkingName #6 最近在学习前后端分离的项目,后端在校验用户登录时候,如果校验成功,一般根据用户的 ID 生成一个 token 返回给前端,在后续访问时候前端页面携带 token 访问对应接口就行了,这样前端并不需要关心后端的具体校验规则啥的(尽量描述简单省略了权限校验)。
    xuelu520
        8
    xuelu520  
       Mar 20, 2023
    jwt 就直接 base64 解了,不是的话,就是 redis 等 nosql 来取用户数据了
    pushMeUp
        9
    pushMeUp  
       Mar 20, 2023
    我们为了防止中间人攻击,在 jwt 里放的是一串 uuid ,然后 uuid 作为 key 在 redis 里存放了真实的用户信息
    dengshen
        10
    dengshen  
       Mar 20, 2023
    前端还问怎么解 token! !!
    luckyrayyy
        11
    luckyrayyy  
       Mar 20, 2023
    token 和 jwt 有啥关系,这不是两种方式么。token 是用户登录的时候,把用户 id 或者一些其他信息放在一起编码后返回给前端的。前端能不能解析看你怎么设计的编码方式,如果直接明文的自然前端也可以拿到用户信息。
    kongkx
        12
    kongkx  
       Mar 20, 2023 via iPhone
    @chunkingName 我只是觉得他问得不好,没别的意思。 简单的说就是 key:value 但中间怎么走花样多得去了。 各种 encode encrypt gateway proxy db 想怎么吹都行
    IvanLi127
        13
    IvanLi127  
       Mar 20, 2023 via Android
    token 种类那么多,流程都能出来好多版本,这问题没其他上下文的话,确实很配一堆乱七八糟的答案。。。

    光签发 token 的地方就能有好多种,他这问题最简单的答案就是 op 说的,后端提取到 token ,查映射关系找到用户信息,然后读取用户信息。怎么提取,怎么查关系,从什么地方读用户信息都有可能,看具体实现。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5301 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
    ♥ Do have faith in what you're doing.