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