收藏
回答

openId不能作为前端登录标识,那么前端如何识别用户是否授权?又如何重新获取用户信息?

openid不能放在小程序里storage中,也不能放在请求里面,使用code从后台换取session,这样可以保证安全,而且但有效时间为5分钟。

问题:

1、现在很多小程序都只是第一次登录时授权一下,之后都不再需要授权,用户长期未使用小程序后再次打开时可以直接使用,并没有session过期再重新授权的操作。

2、有的开发者说是使用session,有的说是使用token?这两者有什么区别,两者都有时效性吗?

如果是使用session,session一段时间后就失效了,还如何验证用户?

如果是服务器给每个用户随机分配一个token(固定的),那么再次进入小程序通过token去验证即可,无论何时都是可行的,但这不就又变成了openId?两者没什么区别呢?假设token也是随机的,那过期之后,仍然需要重新授权

最后一次编辑于  2021-04-06
回答关注问题邀请回答
收藏

3 个回答

  • Geefib
    Geefib
    2021-04-09

    openId可以作为单一微信小程序端的用户唯一标识.

    1. 现在很多小程序都只是第一次登录时授权一下,之后都不再需要授权"(如果只是openid,第一次授权都不用,直接用wx.login后的code在通过code2session就可以注册一个用户)是因为第一次授权后把openid作为小程序端唯一标志存到数据库里去了.之后再通过wx.login传code给后端,然后调用code2session后端能换到openId就能静默登录成功;
    2. (静默)登录成功后,后端给小程序一个token,token过期后,还是需要用1的方法鉴别用户身份再换token使用。也可以直接用openid。但是对一个小程序,一个用户openid是永久不变,token是可以实时刷的,保证接口安全性,建议openid换token请求比较好


    2021-04-09
    有用 1
    回复 1
    • 诗思雅
      诗思雅
      发表于移动端
      2021-04-09
      非常感谢
      2021-04-09
      回复
  • 浪花骑士
    浪花骑士
    2021-04-06

    openId可以作为微信小程序端的用户唯一标识.

    1. "现在很多小程序都只是第一次登录时授权一下,之后都不再需要授权"是因为第一次授权后把openid作为小程序端唯一标志存到数据库里去了.之后再通过wx.login配合后端就能静默登录成功;
    2. (静默)登录成功后,后端给小程序一个token(你强行叫session也行,但是小程序不支持web意义上的session),定好失效时间,写好token失效后的处理逻辑即可.
    2021-04-06
    有用 1
    回复 1
    • 诗思雅
      诗思雅
      发表于移动端
      2021-04-09
      非常感谢
      2021-04-09
      回复
  • brave
    brave
    2021-04-06

    jsonwebtoken 了解一下

    2021-04-06
    有用 1
    回复
登录 后发表内容
问题标签