V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaleaoch
V2EX  ›  程序员

前端如何获取当前用户名和其他用户信息 需要一个 单独的 api 吗

  •  
  •   chaleaoch · 2021-06-18 09:44:10 +08:00 · 1913 次点击
    这是一个创建于 1255 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果不需要如何实现,假设用 react.
    第 1 条附言  ·  2021-06-18 13:19:57 +08:00
    结论是单独的接口实现.

    结贴.

    感谢各位大佬.
    chaleaoch
        1
    chaleaoch  
    OP
       2021-06-18 09:46:24 +08:00
    登录成功之后会返回当前用户信息.

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

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

    local storage?
    wotemelon
        2
    wotemelon  
       2021-06-18 09:48:42 +08:00   ❤️ 1
    需要一个获取用户信息的接口。如果是 ssr 更好,直接写到 store
    Vegetable
        3
    Vegetable  
       2021-06-18 09:53:27 +08:00   ❤️ 1
    常见的系统设计中,一般是以下 3 个情况

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

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

    谢谢大佬们的热心解答.
    Rocketer
        8
    Rocketer  
       2021-06-18 10:20:21 +08:00 via iPhone
    jwt 里直接读就好啊
    liyang5945
        9
    liyang5945  
       2021-06-18 10:27:42 +08:00
    前端存储 token 到 cookie 或 local storage 里,用这个 cookie 调一个接口获取用户信息,保存到 store 里,这样切到别的 component 或者关掉浏览器之后再打开也没问题了
    leven87
        10
    leven87  
       2021-06-18 10:44:24 +08:00
    以上大佬说的都对
    samin
        11
    samin  
       2021-06-18 10:49:20 +08:00
    JWT 了解一下
    skypyb
        12
    skypyb  
       2021-06-18 10:59:48 +08:00
    按照楼上几位的说法, 要是用户的权限在关闭浏览器时变动了。再次打开浏览器直接拿 localStore 里的信息就有问题了吧。

    我还是倾向于每次打开都要去请求一下
    lybcyd
        13
    lybcyd  
       2021-06-18 11:57:09 +08:00
    我习惯用单独接口,每次打开页面请求一下。单独的接口合理一点,因为不一定能保证当前用户和登录时返回的信息一致。
    IvanLi127
        14
    IvanLi127  
       2021-06-18 12:23:42 +08:00 via Android
    倾向于从接口拿 。除了是小玩具或者登录不登录区别的大的网页。毕竟这个接口还承担着踢用户下线的功能呐
    walpurgis
        15
    walpurgis  
       2021-06-18 12:47:38 +08:00 via Android
    功能独立较好,方便复用,登录只返回 token
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3697 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:00 · PVG 09:00 · LAX 17:00 · JFK 20:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.