收藏
回答

通过login获得的code从后台换取的userid,需要存到Storage里吗?

前端拿code调接口返回userid然后使用,之前一直是这样的,后端的leader突然说这一步前端应该把userid缓存起来,下次有缓存就不用走登录了,pc端确实是这么做的,小程序该不该这么做,我总觉得这么做有点不好但又说不出哪里不好。有没有大神,大家讨论讨论。

回答关注问题邀请回答
收藏

6 个回答

  • 睡前原谅一切
    睡前原谅一切
    2020-01-10

    存是没问题的,但是为啥存userId。。。不应该存token或者jwtToken么。。

    2020-01-10
    有用 2
    回复 9
    • 陈
      2020-01-10
      项目不同吧,有些项目用token,有些用userid
      2020-01-10
      回复
    • 睡前原谅一切
      睡前原谅一切
      2020-01-10回复
      都行,就一个标示而已,而token可以过期,userId却不行。
      2020-01-10
      回复
    • 睡前原谅一切
      睡前原谅一切
      2020-01-10回复
      而且 userId 用户可以随便输入就可以上别人号了?
      2020-01-10
      回复
    • 陈
      2020-01-10回复睡前原谅一切
      token也一样啊,其他用户把别人token拿过来不也是一样能用啊
      2020-01-10
      回复
    • 睡前原谅一切
      睡前原谅一切
      2020-01-10回复
      token可以过期,
      2020-01-10
      回复
    查看更多(4)
  • 禾店短剧系统
    禾店短剧系统
    2021-06-09

    用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key

    2021-06-09
    有用 1
    回复
  • 怅若林夕
    怅若林夕
    2020-01-10

    我觉得应该是这么个流程,拿到code调接口换取 token,存储token信息,需要校验的接口要带上,token过期后,重新获取token

    2020-01-10
    有用 1
    回复 2
    • 陈
      2020-01-10
      token过期是调一个接口,它返回信息告诉我过期吧
      2020-01-10
      回复
    • 怅若林夕
      怅若林夕
      2020-01-10回复
      可以这么做。一般情况下,在需要校验登录态的接口,在请求过来时都会进行登录态的校验,如果token过期,则会返回对应的信息,这时候再去登录或拿token就好
      2020-01-10
      回复
  • NULL
    NULL
    2020-03-18

    userid直接存在本地肯定是不安全的,如你说的,自增长,别人改了就不行了。在微信里用openid做用户识别,接口拿到可以存在sessionStorage里,这没有问题。或者再进一步,后端将openid、时间截生成一个token返回给你前端,你再将这个token存在sessionStorage,后面所有操作,将这个token给接口判断就行了

    2020-03-18
    有用
    回复
  • 老张
    老张
    2020-01-10

    我都是存的。openid用于云开发数据库没问题,但是用来访问自己的服务器时,有安全问题。

    2020-01-10
    有用
    回复 7
    • 陈
      2020-01-10
      请问有什么安全问题,让我涨涨见识,还有什么叫云开发数据库,跟访问自己服务器有什么区别,云开发数据库是微信自己数据库的意思吗
      2020-01-10
      回复
    • 老张
      老张
      2020-01-13回复
      你用云开发查询某个openid的数据表,是没有安全问题的;你用这个openid去你自己后台查询数据,就暴露openid了,可能被人截获取。
      2020-01-13
      回复
    • LLLLL
      LLLLL
      2020-03-01回复老张
      token为键,openid为值,被人结果了openid也没事啊
      2020-03-01
      回复
    • 老张
      老张
      2020-03-02回复LLLLL
      比如修改某openid的用户信息的API,这个被人截获,也可以任意修改某人的用户信息。
      2020-03-02
      回复
    • LLLLL
      LLLLL
      2020-03-04回复老张
      要有token才运行修改呀,如果token也被截获了那就没办法了。。
      2020-03-04
      回复
    查看更多(2)
  • 拾忆
    拾忆
    2020-01-10

    存起来没什么问题呀

    2020-01-10
    有用
    回复 14
    • 陈
      2020-01-10
      你如果存了,那手机换了用户登录,那会不会还是原来的缓存token
      2020-01-10
      回复
    • 拾忆
      拾忆
      2020-01-10回复

      会,怎么维护缓存数据,需要根据自己的业务场景去考虑

      2020-01-10
      回复
    • 陈
      2020-01-10回复拾忆
      兄弟,如果真是原来的缓存,那问题就很大啊,那相当于,你换了用户,其实我读的的是原来的缓存,后端还是认为你是之前的用户啊,这除了不缓存好像没有办法解决吧
      2020-01-10
      回复
    • 拾忆
      拾忆
      2020-01-10回复
      每次打开先判断下openid,不是一个就删除旧的信息,是的话就不要删除~
      2020-01-10
      回复
    • 陈
      2020-01-10
      好像有那么点懂了,我讲一下登录的流程哈,一开始拿code去后端换openid和token然后都存到缓存,然后每次登录都先检查有没有缓存,有的话就拿code换openid,看openid有没有变化,是这样吗
      2020-01-10
      回复
    查看更多(9)
登录 后发表内容
问题标签