在一些案例中,我们需要用户注册并登陆才能正常使用功能或者浏览信息,之前有用过添加微信公众号组件的方式,让用户在微信环境下打开案例发起微信公众号登录,或者将案例的类型选择为小程序采用微信小程序登录。除了这两种方式以外,ivx也提供了手机号注册登录的方法,今天我们就说一说手机注册登录的具体操作。
一.用户组件
手机注册登录同样需要使用到用户组件,我们可以看到其中默认字段包含手机号、openID、unionID和邮箱四个字段,它们分别是用户组件几种注册登录方式的登录凭证,用户表中每条用户信息之只能对应一种登录方式且不能修改,但可以同时获取用户的其它信息作为附属信息。另外我们也可以自己添加一些额外字段适用于不同案例。
下面就是手机注册的流程示意图,可以看出完成一次注册操作需要进行两次验证。首先是图片验证,这一步骤中图片ID作为唯一标识,服务端会通过用户返回的图片ID去数据库中查找正确答案,判断验证是否成功。同时用户还需在返回信息中加入自己的手机号,这样验证成功后服务端就可以直接发送手机验证码。最后,用户是将手机验证码和注册信息一起提交到服务端,手机验证码无误即可将注册信息写入用户组件完成注册。
手机和邮箱类型的登录中,用户注册账号后可以手动填写用户名(手机号或者邮箱)和密码发起登录。另外,用户登录过一次之后,后台会通过http only 的cookie(即后台服务设置的cookie)将当前用户的登录令牌存储在客户端浏览器,我们可以在应用初始化的时候,通过此登录令牌去获取当前用户的信息。因此,用户只要不手动清除cookie,就可以在应用初始化时自动登录,无需再次输入用户名密码。
1.初始化自动登录
在案例中我们添加一个空白的页面组件作为首页。当此页面显示时,让用户组件获取当前用户的信息,如果获取结果中当前用户是否匿名为否且登录类型为0(即手机号登录),则说明自动登录成功就直接跳转到个人页面,否则就跳转到登录/注册页让用户手动登录。
登录和注册模块是分别使用两个横幅组件搭建的,通过if容器和文本变量“登录/注册”选择展示哪一模块,用户点击“暂无账号,前往注册”或者注册按钮并注册成功后都会更改文本变量的值。