热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

知识点angular2、nodejs、redis、session前期准备基于实现目标,我们在进行之前先分析下需求。1、实现用户登录、验证;想实现这个需求,思路无非就是从前端用pos

知识点

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,刷新读取会话;

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

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

后续


推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文详细解析了微信服务端示例类的功能与应用。其中,`ClientResponseHandler` 类主要用于处理微信支付所需的响应数据,而 `TenpayHttpClient` 则是对 HTTP 请求(包括 GET 和 POST 方法)进行了封装,以便在内部调用时更加便捷和高效。这些工具类在实际开发中起到了关键作用,开发者无需深入了解其底层实现细节,即可轻松集成微信支付功能。 ... [详细]
  • 为了评估精心优化的模型与策略在实际环境中的表现,Google对其实验框架进行了全面升级,旨在实现更高效、更精准和更快速的在线测试。新的框架支持更多的实验场景,提供更好的数据洞察,并显著缩短了实验周期,从而加速产品迭代和优化过程。 ... [详细]
  • Sanic 是一个类似于 Flask 的 Python 3.5 Web 服务器,以其出色的写入速度而著称。与 Flask 不同,Sanic 支持异步请求处理,这使得它在处理高并发请求时表现更加出色。通过利用 Python 的异步特性,Sanic 能够显著提高应用程序的性能和响应能力,适用于构建高性能的异步 Web 应用。 ... [详细]
  • 在PHP的设计中,预定义了9个超级全局变量、8个魔术变量和13个魔术函数,这些变量和函数无需声明即可在脚本的任意位置使用。这些特性在PHP开发中极为常见,能够显著提升开发效率和代码的灵活性。相比之下,Java并没有类似的内置机制,但通过其他方式如上下文对象和反射机制,也可以实现类似的功能。本文将详细探讨这两种语言中这些特殊变量和函数的使用方法及其应用场景。 ... [详细]
  • 本文介绍了一种利用PHP cURL库高效提取Sohu邮箱联系人列表的方法。通过设置错误报告级别、定义Cookie文件路径等关键步骤,确保了代码的稳定性和可靠性。经过实际测试,该方法在2012年3月24日被验证为有效,能够快速准确地获取联系人信息。此外,文章还提供了详细的代码示例和注意事项,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文深入探讨了ASP.NET中ViewState、Cookie和Session三种状态管理技术的区别与应用场景。ViewState主要用于保存页面控件的状态信息,确保在多次往返服务器过程中数据的一致性;Cookie则存储在客户端,适用于保存少量用户偏好设置等非敏感信息;而Session则在服务器端存储数据,适合处理需要跨页面保持的数据。文章详细分析了这三种技术的工作原理及其优缺点,并提供了实际应用中的最佳实践建议。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
author-avatar
紫褚1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有