小程序登录状态维护| SessionKey的正确使用姿势|小程序开发教程

小程序开发


浏览:1107 次

openid可以用于识别applet用户身份。如果是多平台,则可以使用unionid。这两个字段对于小程序和用户是固定的。基本上,它们被获取一次,以与业务系统的用户ID建立对应关系,然后它们就完成了。

在实际使用中使用SessionKey的情况很少。例如,获得用户信息openid和unionid,并获得用户手机号码。前者是wxLogin(),可以通过代码获得,并且很少有使用SessionKey解密的场景。但是,如果要获取用户的手机号码,必须使用有效的SessionKey。请注意,它是“有效的”。尽管在获取SessionKey时有一个过期时间,但在许多情况下,超时或过期通常会发生。例如,一种常见的情况是,用户信息解密和手机号码解密有时可以正常解密,有时不能正常解密。基本问题是用于解密的SessionKey与用于加密的Session Key不同。

您如何知道当前的SessionKey是否已过期?无法按时间计数。小程序提供wx checkSession()函数确定在需要解密之前它是否已过期。如果已过期,我们将首先wx登录(),然后请求加密数据(用户信息或手机号码信息),然后执行解密操作。

让我们谈谈SessionKey的管理思想。

调用wx Login()获取代码,服务器根据代码、appid和appsecret获取SessionKey。将SessionKey保存到服务器。通常,它不会通过网络传输。在您自己的SessionID和生成的Session Key之间建立对应关系。然后将生成的SessionID传输到小程序客户端并在本地缓存。当您需要使用SessionKey CheckSession()时,请先使用wx来确定它是否已过期。如果尚未过期,则本地SessionID将传输到服务器。服务器将根据SessionID查询相应的SessionKey,以便后续业务操作。如果在本地确定它已过期,Wx。将首先重新生成登录名()。

小程序正式提供了一个非常好的时序图。感兴趣的学生可以查看文档以了解具体流程。