1
chaleaoch 3 小时 18 分钟前
登录成功之后会返回当前用户信息.

但是切到别的 component 或者关掉浏览器之后在打开. 前端如何处理呢?

session 是有效的,但是前端不知道当前用户是谁了.

local storage?
wotemelon 2
wotemelon 3 小时 16 分钟前 ❤️ 1
需要一个获取用户信息的接口。如果是 ssr 更好,直接写到 store
Vegetable 3
Vegetable 3 小时 11 分钟前 ❤️ 1
常见的系统设计中,一般是以下 3 个情况

– 登录返回信息
– 登录不返回+独立获取信息接口
– 登录返回+独立获取信息接口

前端通常会将用户的信息持久化到本地,方案如 cookie 或者 local storage,至少也是使用 redux 之类的工具在内存里留一份,避免需要的时候只能再次请求接口
keepeye 4
keepeye 3 小时 8 分钟前 ❤️ 1
GET /profile
keepeye 5
keepeye 3 小时 8 分钟前 ❤️ 1
一般是需要一个单独的接口的,登录返回的不靠谱,万一数据变了呢?
chenluo0429 6
chenluo0429 3 小时 4 分钟前 ❤️ 1
用户信息肯定需要提供查询接口的,如果用户信息是静态不变的情况下,可以合并给登录接口来返回,但是只要用户信息可变动,那就一定需要独立的查询接口。
chaleaoch 7
chaleaoch 3 小时 2 分钟前
@chenluo0429
@keepeye
@keepeye
@Vegetable
@wotemelon

谢谢大佬们的热心解答.
Rocketer 8
Rocketer 2 小时 44 分钟前 via iPhone
jwt 里直接读就好啊
liyang5945 9
liyang5945 2 小时 37 分钟前
前端存储 token 到 cookie 或 local storage 里,用这个 cookie 调一个接口获取用户信息,保存到 store 里,这样切到别的 component 或者关掉浏览器之后再打开也没问题了
leven87 10
leven87 2 小时 20 分钟前
以上大佬说的都对

samin 11
samin 2 小时 15 分钟前
JWT 了解一下
skypyb 12
skypyb 2 小时 5 分钟前
按照楼上几位的说法, 要是用户的权限在关闭浏览器时变动了。再次打开浏览器直接拿 localStore 里的信息就有问题了吧。

我还是倾向于每次打开都要去请求一下
lybcyd 13
lybcyd 1 小时 7 分钟前
我习惯用单独接口,每次打开页面请求一下。单独的接口合理一点,因为不一定能保证当前用户和登录时返回的信息一致。
IvanLi127 14
IvanLi127 41 分钟前 via Android
倾向于从接口拿 。除了是小玩具或者登录不登录区别的大的网页。毕竟这个接口还承担着踢用户下线的功能呐
walpurgis 15
walpurgis 17 分钟前 via Android
功能独立较好,方便复用,登录只返回 token