上一篇文章中设计好了注册页面的内容,这篇我们编写JS代码,获取到用户的注册信息,后续的
文章会把注册信息提交给后端Java项目,完成新用户注册。
一、激活码用途
首先我们要做的小程序系统并不是完全对外开放的系统,只有本内部人员才可以使用这套系统,所以系统并不完全对外开放注册。
当管理者在BUBA系统中创建了新员工记录,然后BUBA系统会自动向新员工的邮箱发出Email邮
件,邮件中就包含了激活码。当新员工打开BUBA小程序之后,在注册页面填写上激活码,于是
用户的微信账号就自动跟BUBA系统绑定了。以后登录BUBA系统的时候,只需要在微信上确认一
下,就可以完成登陆。
这里设计的BUBA系统包含一个内置的 超级管理员账号 ,这个账号的激活码是固定的(默认
888888 )。公司部署好BUBA系统之后,管理者在BUBA小程序注册页面填写这个固定的激活
码,然后就可以让自己的微信账号和超级管理员账号绑定在一起。BUBA系统中的超级管理员只
有一个,也就是说只能绑定一个微信账号。
2、激活码的过期时间
激活码是有过期时间的,它的过期时间就是Redis的过期时间。管理者在BUBA系统上面创建新员
工帐户之后,BUBA系统会把激活码缓存到Redis上面,过期的时候Redis会自动删除缓存的激活
码。
3、新员工帐户与微信绑定
如果每个员工的记录跟微信帐户绑定的话,那么每名员工登陆的时候,直接在微信上确认就可以
登录BUBA系统了。
管理者在创建新员工记录的时候,并不知道新员工的微信账号,所以没办法完成绑定,需要新员
工自己完成绑定。于是新员工在BUBA小程序注册页面,填写激活码之后,BUBA小程序获取新员
工的微信账号信息,提交给BUBA后台系统,后端系统把微信账号与新员工账号关联在一起,然
后保存到MySQL数据库。
其实把微信账号与小程序关联在一起很简单,就是把微信基本信息(昵称、头像)和 OpenId ,
存储到员工记录上面。因为每个微信账号的 OpenId 在当前的小程序上面都是 唯一的 ,只要
MySQL记录下每名员工微信账号的 OpenId ,那么就实现了员工记录与微信账号的绑定。
员工登陆Emos小程序的时候,后端系统会拿着这个微信帐户的 OpenId 与数据库中的 OpenId 比
对。如果用户表不存在这个 OpenId ,说明该微信帐户没有绑定员工账号,所以BUBA拒绝用户登
陆。如果用户表存在这个 OpenId ,那么就判定用户登陆成功。
4、如何获取微信账号的OpenId字符串
首先我们可以从微信APP上面获得用户临时授权字符串( Code ),然后把这个字符串传递给后
端Java系统,让Java系统拿着 AppId 、 密钥 和 Code ,提交给微信平台换取 OpenId
String url = "https://api.weixin.qq.com/sns/jscode2session";