继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

iVX中的用户鉴别与用户信息获取

iVX零代码编程语言
关注TA
已关注
手记 10
粉丝 1
获赞 0

任何应用,只要不是纯展示类的,我们都需要鉴别当前访问的用户。比如,用户的登录之后,可以获取到他个人的订单信息,可以查看自己收藏的商品,或限制他的投票或抽奖次数等等。

1、用户登录与获取用户信息的基本原理

在ivx中,我们提供多种用户登录的方法,比如,手机+密码登录,邮箱+密码登录,微信登录等等。无论是何种方式登录,用户登录的基本流程和原理都是一样的,如下图所示:

http://img.mukewang.com/5f71a0be0001faf312340568.jpg

用户登录成功之后,服务端除了返回用户信息,也会同时向客户端设置一个cookie(http only的cookie),用来存储当前用户的登录令牌(这个登录凭证是后台生成的一个随机字符串,对应当前用户记录,但不包含任何用户信息)。
在应用编辑中,我们只需要调用用户组件的登录动作即可,当然,根据用户注册的类型,可以发起各种不同类型的登录:

http://img2.mukewang.com/5f71a0c00001769716360494.jpg

有了这个登录令牌之后,下一次用户打开应用之后,就可以直接通过这个令牌,来获取用户信息,如下图所示:

http://img.mukewang.com/5f71a0c00001278111680542.jpg


这个登录令牌,会在用户组件的“获取当前用户信息”的动作中自动发送给后台服务端,我们只需要在前端直接调用这个动作即可。

http://img2.mukewang.com/5f71a0c10001ef5716660388.jpg

因此,只要用户不手动清除cookie,用户第一次登录之后,就可以自动获取登录状态,不需要再次添加用户名密码进行登录了。

2、数据库中的“提交用户”

用户登录之后,用户与后台数据库的任意交互,都会带上cookie中的用户令牌,用来鉴别当前用户,并将当前用户的用户名,记录在数据表中的“提交用户”字段中。(提交用户是每个数据表的默认自带字段,无法删除)

http://img.mukewang.com/5f71a0c10001ee5a12180632.jpg

这个提交用户,即当前用户的用户名,由于ivx中用户登录有多种方式,用户名的格式也有多种形式。比如,用户是通过小程序登录,那“提交用户”中记录的用户名就是该用户的微信openID。通常情况下,一个应用只提供一种登录方式,因此所有的提交用户也是统一格式的,但如果我们同时提供多种登录方式,那我们可能会得到以上混杂类型的提交用户。

数据库的提交用户,可以用来按用户进行过滤,比如输入当前用户提交的信息(比如获取个人订单,个人历史记录等),只需要在筛选条件中选择提交用户=“当前用户”即可(当前用户是个默认选项,可通过下拉菜单选中)

http://img.mukewang.com/5f71a0c20001281109780178.jpg


另外,数据库的提交限制,也是针对登录用户进行判断的:

http://img3.mukewang.com/5f71a0c30001e93e03680522.jpg

因此,如果同一个用户更换了登录方式,比如同一个设备用两个微信账号登录,那他的提交限制也会按新账号的提交限制来计算。

3、匿名用户

如果用户没有进行任何形式的登录(即cookie中没有任何登录令牌),就进行数据库提交,系统将随机生成一个匿名用户,这个匿名用户也对应一个随机用户名,当用户进行数据库提交时,这个随机用户名将作为“提交用户”存储到数据库中。

http://img4.mukewang.com/5f71a0c30001f07510920226.jpg

因此,即使不进行用户登录,我们直接在PC中预览应用时,数据库的提交限制依然生效,因为系统会自动生成一个随机用户,只要不手动清楚cookie,同一个浏览器的随机用户会一直保持一致。

4、确认用户的登录状态

通常,我们在应用初始化的时候去判断用户当前是否已登录,即cookie中是否已存在用户登录令牌,如果已存在,就直接获取用户信息,如果不存在,则发起用户登录来获得令牌。如下图所示:

http://img2.mukewang.com/5f71a0c300016f9108720730.jpg


以微信登录为例,在事件面板中以上逻辑的设置如下:

http://img4.mukewang.com/5f71a0c40001cdd120680958.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP