app跳转小程序二次登录:
app跳转小程序,第一种做法是
点击 app 页面 --> 跳转到对应小程序的路径 --> 登录小程序 --> 使用功能。
这种做法,在 app跳转小程序后,需要二次登录,用户体验不是很好。
app跳转小程序免登录:
(1) 点击 app 页面
(2) 跳转到中间页(可以是小程序,或者H5)
由app到中间页,需要传递的参数可以放在跳转路径后面。比如 订单号、订单类型这些。
(3) 前端调用微信的 wx.login 接口 获取code。
code是用户登录凭证(有效期五分钟)。
wx.login 接口 文档:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
(4) 前端将微信返回的code及app传递的参数传给服务端。
app传递的其它参数,可以一起传给服务端。比如 订单号、订单类型这些。
(5) 服务端调用微信 的code2Session接口。
根据 code 获取 用户唯一标识 OpenID 、 用户在微信开放平台账号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台账号) 和 会话密钥 session_key。
根据用户标识来生成自定义登录态,返回给前端。用于后续业务逻辑中前后端交互时识别用户身份。
如果业务仅需要 openId 以及其它前端传递过来的参数(比如前面的订单号),也可以不生成自定义登录态,服务端直接执行业务,就不需要第5步了。
code2Session接口文档:
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html
(5) 前端根据 wx.request 向服务端发起业务请求, 参数带上自定义登录态。
wx.request的接口文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
小程序登录的流程图
小程序登录的官方文档
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html