我之前也在纠结这个问题,自己服务器端的session,与微信小程序的登录状态应该是没有关联的。除非自己写个判断程序关联在一起。 不过后来想一想其实没有必要。小程序登录是判断微信用户权限的合法性,服务器端这是判断服务器端操作的权限的合法性,只要服务器端不涉及微信业务方面的操作,就不需要进行微信的身份认证。有服务器的session就足够了。
wx.checkSession 获取的登录状态,跟我在服务器后端保存的session状态,有关系吗?文档是这么写的: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。 之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。 我 按照文档说明,在服务器后端设置了session,用以记录会话状态,包含openid和session_key,同时返回小程序session_id。此后小程序每一次向服务器后端请求时,我都在header中设置phpsessionid=session_id,这样每次请求都能找到session会话状态。 问题一:wx.checkSession 获取的登录状态,跟我在服务器后端设置的session,有关系吗? 问题二:如果wx.checkSession 获取的登录状态失效,会意味着在服务器后端设置的session失效吗?如果是这样,wx.checkSession怎么知道我在后端设置的session是多长时间? 问题三:如果wx.checkSession 获取的登录状态,跟我在服务器后端设置的session,那我获取这个登录态的意义是什么?反正openid是不变的,我在每次请求header中设置phpsessionid=session_id,我就知道是哪个openid,那前端 获取的登录状态有啥 用? 文档反复看了不少,实在是没明白。麻烦大家帮忙解答下。
2020-11-24