微信小程序的用户天然就是微信用户。但是,在此基础上,小程序可以有自己的用户管理,管理的是业务用户。比如说,A用他的手机,打开某个微信小程序,他可以登录自己的小程序账号(身份是教师),也可以登录B的小程序账号(身份是学生)。虽然在同一个微信账号下,但是小程序的账号是不同的。相应的,就需要有一套用户管理机制,在小程序里可以注册用户、登录、退出登录。
此外,小程序还应提供“微信一键登录”的功能,这样用户就不必记忆用户名和密码,可以直接通过微信账号登录小程序。当然,用户也可以使用账号密码的方式登录,二者的效果是一样的。
不管使用哪种登录方式,登录成功后,需将登录状态缓存在前端,这样,即使关闭了小程序,下次再打开时,就不用重新登录了。当然,用户可以显式退出登录。
如果不考虑微信环境,那么注册用户、登录、退出登录等功能,和其它平台相比,没有任何特殊之处:用户注册后,将信息持久化在后台数据库,下次用户登录时,后台验证用户名和密码,然后返回成功或者失败的消息。
用户选择“微信一键登录”时,后台需要查看是否已经绑定用户名和openid(openid可以理解为微信用户针对小程序的唯一ID)。
有4个页面:
页面之间的跳转关系以及对应的登录状态:
注意:有两种方式可以跳转到注册页面,“微信一键登录”和“账号密码登录”,这两种方式的不同之处在于,注册成功之后,前者需要和openid做绑定,后者不需要。
有3个云函数:
https://git.weixin.qq.com/wx_wxb6b7b29f5024c210/demoLogin
注:本例是为了演示注册登录的功能,只做了一个非常简单的原型,请聚焦在功能性上,忽略其它不足之处:
在未登录状态下打开小程序,进入“未登录的主页面”。
在已登录状态下打开小程序,进入“已登录的主页面”。
在已登录主页面,点击“退出登录”按钮,退出登录,显示未登录的主页面。
在未登录主页面,点击“登录”按钮,进入登录页面。
在登录页面,点击“微信一键登录”按钮(openid已绑定),进入已登录主页面。
在登录页面,点击“微信一键登录”按钮(openid未绑定),进入注册页面。
通过“微信一键登录”进入的注册页面,填写ID和密码,注册成功,进入已登录的主页面。
如果ID已存在,则注册失败。
在登录页面(参见测试4)点击“用户注册”按钮,进入用户注册页面。
填写ID和密码,注册成功,进入已登录的主页面。
如果ID已存在,则注册失败。
在登录页面(参见测试4)点击“账号密码登录”按钮,进入账号密码登录页面。
填写用户名和密码,登录成功,跳转到已登录主页面。
注意两种账号都需要测试一下:
填写错误的用户名和密码,登录失败。
上一篇:echarts文档解读