小程序-用户授权授权后的信息读取流程

小程序-用户授权授权后的信息读取流程,第1张

在小程序中,不允许直接d出用户授权的选择框,所以需要开发人员在界面上来设置提示信息,诱导用户点击,然后完成用户数据的录入和存取。在开发的过程中,某些请求是依托用户登录之后获取到的openId才能继续执行的,所以在页面上,某些数据渲染之前需要判断用户是否登陆,如若没有登录,怎样设计更好的交互来让用户登录。

使用小程序时,首先会进入到app.js这个文件中,这个文件里包含了俩个方法,一个是wx.login(),另一个是wx.getSetting(),wx.login()的目的是为了在用户登陆之后获取到一个对应的 code 值,然后通过这个值去自己的后台换取一个openId;wx.getSetting()第一是为了判断用户的授权范围,另一个是获取对应权限内的信息,比如说,用户授权小程序可以使用自己的基本信息,就可以在这个方法中获取到用户的头像、微信名、微信设置的城市这些字段,这就是一些需要掌握的基本流程,具体怎么实现登录呢?

在小程序中,官方给出了一种解决方案-button按钮:

在这个按钮中,有几个属性:

●  type :按钮的类型,可以设置为primary,背景色为绿色

●  wx:if :显示条件,内容分别为hasUserInfo和canIUse俩个字段,同时为真即可显示(俩个字段均需要在data中初始化赋值)

●  open-type :按钮的功能类型,getUserInfo是为了获取基本信息(也可以设置为其他→getPhoneNumber:获取用户手机号)

●  bindgetuserinfo :绑定的点击事件。在js中写对应的逻辑

在用户点击按钮之后,会出现一个d窗,确定用户是否授权 :

当用户点击允许之后,进入我们绑定的getUserInfo函数中:

在执行逻辑中,首先通过wx.login()方法获取到用户对应的openId,方便后续的 *** 作,然后再通过wx.getUserInfo()来获取到用户的基本信息,发送请求,将基本信息入库存储,或者展示到页面上,就完成了登录流程。

1.在登陆中可能会涉及到多个页面登陆成功之后的状态同步,可以通过 app.gloableData 来实现,在全局对象中设置一个字段,然后不论在哪个页面实现了登录,都可以通过全局对象来完成更新。

2.在 获取用户信息 的时候,有时候需要获取的是 中文类型 的数据,可以在 wx.getSetting() 的请求体中加一个 lang:'zh_CN'。 这样获取到的数据就是中文格式的了

1、用户打开小程序,在页面上调用小程序中的wx.login(Object object)接口,调用该接口获取登录凭证(code)

通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。更多使用方法详见小程序登录。

2、获取openid、unionId和session_key。将登录态code发送给自己的后台服务器,后端服务调用auth.code2Session接口

登录凭证校验。通过wx.login接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见小程序登录。

3、首次登录获取用户信息。微信小程序API近期又做了调整,之前用的好好的getUserInfo做了重大调整,无法直接获取用户信息了,比如昵称头像等等,当然2021年4月13日上线前的小程序不受影响,如果想要再次升级新版本,即必须涉及到更换获取用户授权的修改,将getUserInfo改成getUserProfile接口。

推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认开发者妥善保管用户快速填写的头像昵称,避免重复d窗。建议保存信息,这样后面就无需重新获取。

4、通过上面三步,保存相关信息。就可成功登录微信小程序了,但是还需要做登录维护。

如果用户登录小程序后,然后又退出该小程序了。在一段时间内,再次进入该小程序,视为有效登陆,如果超出指定的时间,则视为无效登陆,需要重新登陆。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11576723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存