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

2023-03-19 22:40:03 +08:00
 chunkingName

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

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

光签发 token 的地方就能有好多种,他这问题最简单的答案就是 op 说的,后端提取到 token ,查映射关系找到用户信息,然后读取用户信息。怎么提取,怎么查关系,从什么地方读用户信息都有可能,看具体实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/925362

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX