加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

基于angular2实现用户登录并信息持久化的一些理解(一)

发布时间:2020-12-17 09:10:35 所属栏目:安全 来源:网络整理
导读:知识点 angular2、nodejs、redis、session 前期准备 基于实现目标,我们在进行之前先分析下需求。 1、实现用户登录、验证; 想实现这个需求,思路无非就是从前端用post将用户名、密码(MD5)传到后端,后端再根据用户id来查询用户,然后比较密码,如果成功则

知识点

angular2、nodejs、redis、session

前期准备

基于实现目标,我们在进行之前先分析下需求。

1、实现用户登录、验证;
想实现这个需求,思路无非就是从前端用post将用户名、密码(MD5)传到后端,后端再根据用户id来查询用户,然后比较密码,如果成功则返回true及对应的用户信息,反之返回相应信息;

2、用户信息持久化;
用户信息持久化其实方法也很多,例如cookies、localStroage、sessionStorage、session、redis及mongodb等;下面简单说明下他们各自的特点:

cookies: 最古老,基本所有浏览器支持。容量小,仅有4k,即一个域下最多可存大概20条记录。可设置存活期,不安全,当服务器端多并发时,为考虑减轻对服务器压力,可将数据存放在cookies。同一域,同一浏览器内多窗口(标签)间可以共享,没有设置存放期时关闭浏览器cookies消失;

localStroage:基于HTML5的本地存储,容量大,可永久保存数据,直至用户主动清空。同一浏览器多窗口(标签)共享

sessionStorage:基于HTML5的本地存储,容易较大。区别了localStroage的特点是生命周期仅存放于会话期间,关闭浏览器即消失。区别于cookies特点是,容易大,多窗口(标签)间数据不共享。

session:基于服务器端的缓存,可设置存活期,容量大,安全性高。同一域内数据可共享,可根据头部带的cookie读取相应的信息,考虑信息安全性,可使用session.

redis:是目前比较流行的运行于服务器端的缓存数据库。容量大,安全性也高,可设置存活期,过期即消毁。

mongodb:作用也redis类似,都是缓存数据库。

3、用户信息有无存活期;
这里需要考虑的问题是当得到了正确的用户信息后,保存在哪里。通过上面的分析,我们很容易会选择session,因为其安全性高。所以,我们得到一个方案是session+redis。将后端生成session信息并保存到redis中。

4、设计登录方案
这里我用两张流程图来表达登录方案,图1,登录保存会话;图2,刷新读取会话;

后续

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读