为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
安全

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

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

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

https://img1.sycdn.imooc.com//5f71a0be0001faf312340568.jpg

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

https://img1.sycdn.imooc.com//5f71a0c00001769716360494.jpg

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

https://img1.sycdn.imooc.com//5f71a0c00001278111680542.jpg


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

https://img1.sycdn.imooc.com//5f71a0c10001ef5716660388.jpg

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

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

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

https://img1.sycdn.imooc.com//5f71a0c10001ee5a12180632.jpg

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

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

https://img1.sycdn.imooc.com//5f71a0c20001281109780178.jpg


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

https://img1.sycdn.imooc.com//5f71a0c30001e93e03680522.jpg

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

3、匿名用户

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

https://img1.sycdn.imooc.com//5f71a0c30001f07510920226.jpg

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

4、确认用户的登录状态

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

https://img1.sycdn.imooc.com//5f71a0c300016f9108720730.jpg


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

https://img1.sycdn.imooc.com//5f71a0c40001cdd120680958.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消