终于理清getuserinfo、login、账号登陆三者的关系,记录一下
刚开始学微信小程序的时候对三者的关系总是模模糊糊,有点混淆,今天终于理清了。
wx.getUserInfo:获取用户信息,需要用户授权,会弹出授权框请求授权,目前感觉作用仅在设置一些用户头像,用户昵称有用,不作为什么凭证。
wx.login:成功回调包含一个code,可以通过wx.request发送到后台去获取openID,后台经过加工,返回一个经过包装的openid,加工是因为微信不建议将openid暴露于前端。后续操作都通过这个"openid"作为凭证去获取数据。
这个login困扰了我很久,一直以为这个login就像平时登qq、微信那样弹出一个登录界面,其实并不是,是为了获取用户openID,openID是系统自动分配的,作为用户的微信凭证。如果小程序以openID作为获取后台数据的唯一凭证,就相当于把微信号当做小程序的登录账号。
账号登陆:仅为部分想将微信账号与小程序账号分离的小程序需要。比如应用希望多个微信号都可以登陆同一账户进行使用,设置一个登录页,让用户填写账号userID和密码,点击登录进行后台验证。这时userID将替代openid的作用,作为凭证获取后台数据。这时候小程序里的账号就跟用户微信号没关系啦,可以在多个微信号登录同一个账号。