web项目用户角色管理

来源:互联网 发布:雍正 知乎 编辑:程序博客网 时间:2024/05/29 20:00

最近更新时间:2017年7月6日13:14:49

    任何一个web项目,按照是否有会员(用户)登陆划分,可以分为有会员网站和无会员网站,无会员网站结构简单内容单一,有会员网站结构复杂内容丰富。

    对于有会员登陆的产品而言,项目整体的用户管理配置功能是产品最基本和最重要的功能。同时,有用户登陆的网站,网站的浏览模式分为两种:游客模式和会员模式,游客模式是指不通过登陆,任何人可以浏览网站公开的部分内容;会员模式是指通过登陆认证能够浏览网站没有向游客模式公开的核心内容,同时用户还能够查看自己保存在网站的私人信息。

    身份认证的原理:用户首次进入软件,登陆成功后,后台接口会返回一些属于该用户的参数,其中loginCode用户身份认证码,是后台动态生成的,并且有过期时间。用户在请求或查看一些私有信息或数据时,请求接口需要载入loginCode码,当 loginCode码正确 并且 没有过期,后台接口会返回正确的数据。

1、用户登录成功后,后台返回的参数

userInfo{

    loginCode:;

    fullName:;

    level:;

    account:;

    userId:;

    mobile:;

    mail:;

}

2、前端对参数的处理

    以微信小程序项目为例:

    对于loginCode码可以存放在三个位置,this.setData({loginCode : res.data.respBody.loginCode}) 登录页面的data对象中,用于本页面的其他地方使用;wx.setStorage({key:"loginCode",data:res.data.respBody.loginCode}) 微信小程序本地缓存中,用于其他页面进行请求数据时的登陆认证使用;getApp().loginCode = this.data.loginCode 公共配置文件的变量中,用于整个生命周期中使用;

    对于接口返回的其他数据-用户基本信息内容,可以通过 数据缓存 或 配置文件的变量 保存;

    以常规浏览器项目为例,区别仅在于数据缓存的API和微信小程序不同,可以参考我的文章Web存储 一文。

3、记住用户账户和登录密码的方案

    在用户第一次登录成功后,将用户账户名和密码保存在 数据缓存 或 公共配置文件的变量 中,当用户退出登录后,再次进入登录界面,在onLoad函数中,拿到 数据缓存 或 公共配置文件的变量 中存储的数据自动 写入 input输入框,用户只需要点击登录按钮,就可以完成登录。

4、用户退出登录

    对于必须登录才能使用的微信小程序来说,退出登录成功后的路由跳转方案,关闭所有页面,清空页面栈数组内容,打开到应用内登录页面wx.reLaunch({url: '../login/index'});

    对于游客模式可以访问的webAPP来说,退出登录成功后,需要清空数据缓存中的用户信息。