微信登录是微信开发的一项核心基础功能,通过用户登录可以对用户进行唯一标识,继而为用户提供各种跟踪服务,如收藏、下单、留言、消息、发布、个性化推荐等等。这篇文章就教大家怎样在微信中实现小程序的静默登录,希望能给帮助到大家。
许多开发者会把 wx.login 和 wx.getUserInfo 捆绑调用当成登录使用,但其实 wx.login 已经可以完成登录,wx.getUserInfo 只是获取额外的用户信息。在 wx.login 获取到 code 后,会发送到开发者后端,开发者后端通过接口去微信后端换取到 openid 和 sessionKey(现在会将 unionid 也一并返回)后,把自定义登录态 3rd_session(本业务命名为auth-token) 返回给前端,就已经完成登录行为了。
wx.login 行为是静默,不必授权的,用户不会察觉。wx.getUserInfo 只是为了提供更优质的服务而存在,比如获取用户的手机号注册会员,或者展示头像昵称,判断性别,开发者可通过 unionId 和其他公众号上已有的用户画像结合来提供历史数据。因此开发者不必在用户刚刚进入小程序的时候就强制要求授权。
静默登录流程可大致总结为以下三步:
1、小程序端调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
2、服务器端调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥session_key。
3、开发者服务器可以根据用户标识来生成自定义登录态(例如:auth-token),用于后续业务逻辑中前后端交互时识别用户身份。
静默登录成功后,微信服务器端会下发一个session_key给服务端,而这个会在需要获取微信开放数据的时候会用到。为了确保开放接口返回用户数据的安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。
以上就是关于微信开发教程之小程序静默登录的详细解析,翼速应用平台内有更多相关资讯,欢迎查阅!
我来说两句