个人博客设计记录

一、使用的中间件

1. koa

2. koa-static 实现静态资源服务器

3. koa-bodyparse 实现body的解析,主要是post请求数据的解析

4. koa-logger 控制台日志中间件

5. koa-session-minimal  适用于koa2 的session中间件,提供存储介质的读写接口 ,但真正存储的数据库等配置依赖其他

6.  koa-mysql-session  为koa-session-minimal中间件提供MySQL数据库的session数据读写操作。

7.  mysql 实现对mysql数据局的操作

二、 server目录结构

codes存取请求返回状态信息

db存取数据库sql相关文件

middlewares存取路由的回调中间件,在其中调用services层方法,响应路由请求

services存取业务逻辑相关函数,调用model层方法,对传入的参数数据和model层方法返回的数据,进行处理

models存取数据模型相关函数,接受参数,调用utils中的一些方法操作数据库,返回数据,不对数据格式等进行处理,

utils存取了数据库操作的一些封装方法

index.js服务器端入口

serverConfig.js存取数据库服务器相关配置,比如数据库连接配置

三、session的验证机制

原理过程:

session的生成过程:

对于第一次登陆请求,如果请求成功,则为其设置相应的session信息,比如登陆用户为liyanlei,根据用户名和密码查询到该用户的基本信息,然后按照以下格式设置对应session_data:

{
   isLogin: true,
   username: ‘liyanlei‘,
   userId: 1
}

然后以某种方式生成一个唯一的session_id,我们可以以键值对的形式理解,其中session_id为key,二session_data为value,将其存入数据库的表中(当然我们也可以为其设置一个expires过期时间,不断添加session信息,经过一段时间后,我们可以根据expires删除过期session,来减少数据库压力)

最后我们将生成的session_id写入到浏览器端的cookie中(比如说cookie中的USER_SID对应的值极为session_id),并为其设置生存期,当cookie的数据度过生存期后,便会失效。

根据sesson验证登陆

浏览器发出各种请求时,会自动携带当前未cookie信息(肯定是未过期的),我们接受请求,获取cookie中的USER_SID(也就是session_id),我们根据sesion_id查询数据库,在保存session信息的表中获取到对应用户的各种信息,也就是session_data,我们根据session_data可以判断当前登录用户是谁,是否之前已经登录过等等信息,具体要看我们在session_data中设置了什么,大概流程就是如期,如果当前登录用户没有已登录,就是要验证用户名和密码,通过后生成session,也就是上边的session生成过程,依次循环。

使用koa-session-minimal,koa-mysql-session

对于生成session信息、将session存入cookie、数据库中session的存储和读取这些操作,我们使用koa-session-minimal,koa-mysql-session这两个中间件就可以实现,可以节省我们去封装该功能函数的事件

-------------------------

时间: 2024-11-06 09:35:42

个人博客设计记录的相关文章

【个人博客设计】

概述: 本网站为自己的个人博客网站,从开工是2020.1.16号开始,到1.29号已经完成了大部分功能,从前端的显示以及后端的逻辑处理都是根据自己的经验来写的,因为感觉写的实在是太乱了,所以重新把这个系统写一下.因为记录是一直都在跟进的,截止到2.21号,已经完成了PC端阅读与管理和小程序端的阅读,大概历时35天,在此之前,以下使用的框架以及插件都是我从未接触过的,所以可以说从根本上来说,我是花了一个月的时间学习了以下的框架.插件与小程序,并且实现了这样的一个项目,这并不说我想表示有多么的厉害,

鄙人为啥要在博客上记录学到的技术细节?

鄙人是搞软件的,曾经因为一个偶然的机会进入了软件这一行业. 1.为啥要学技术? 学技术嘛,不外乎两个原因.一个是学以致用,另一个就是兴趣了. 学以致用:既然都搞软件了,基本的软件开发知识总得有吧,这就得学了. 兴趣:鄙人从小爱折腾,软件这东西可比其他的东西都耐折腾,想怎么玩你逗可以怎么玩,哈哈-- 2.为啥要学技术细节? 很多人都说:技术就是工具,有需求的时候拿来用就行了,懂点基本的就可以了,不用太关注细节. 鄙人却深不以为然.且不说可扩展性和可复用性了,大多数代码的可读性和可维护性都达不到要求

用hugo建博客的记录 · 老张不服老

前后累计折腾近6个小时,总算把搭建hugo静态博客的整个过程搞清楚了.为什么用了这么久?主要还是想偷懒,不喜欢读英文说明.那就用中文记录一下过程吧.还是中文顺眼啊. 某日发现自己有展示些东西给外网的需求,又不想通过DDNS在本地电脑上架设服务器,于是决定建一个免费网站.以前帮朋友们建过几个免费网站,知道免费空间大多有种限制或者要有广告.但我只需要展示一两个静态网页就足够,为此还要接受广告心里不爽.在各种搜索下,终于确定github page就是最合适的方案. 不想自己手动逐项设置,打算找一个工具

开通博客,记录生活

2013年大学毕业后,我会到了家乡,在一家大的印刷厂找了一份工作.工作职责就是网管兼软件开发,拿2千多块的工资.后来有一次我打印文件时,发现了一份工资列表.估计是人力资源打错打印机了.我大概一看,原来最高层总经理也就一万块的工资,高管78千,十年的老员工也不超过5000块.公司的员工素质普遍很低.人力资源部的那些娘们儿加上二流子跟狗一样基本上是勾心斗角,结党营私.在这种地方,根本没有什么前途.于是我下定决心:不干了,离开小城市,去广州. 2014年7月16号,我独自一人带着剩下的二千块工资来到广

创建博客来记录我每天的java征途

大家好! 今天2015-7-29!我创建了属于我自己的博客,在这里,我将记录我每天的java学习征途, 其实我的大学专业不是软件工程类的,而是建筑工程,都是工程,可是两者之间却完全不沾边的两个专业,为什么我会选择放弃我的大学专业学习java呢? 第一点:虽说我在大学的专业是建筑工程,可是大学里我都是浑浑噩噩度过的,没有学到什么东西,每天呆在寝室和室友一起玩游戏,可以说大学三年基本是玩过来的,可是我大学每次期末考都没有挂过科,当然,每次考试前总是会抱抱佛脚,还算幸运,没有挂科. 第二点:java挣

用博客园记录自己的生活

很久之前就想有一个可以记录自己心情或者是个人经历的平台,记得上初中那会儿我和同桌每天都坚持写日记,而且还要争着给语文老师看,记得那个时候自己每次都很期待老师对自己心情的评价!这或许可以说是一种爱好吧,现在离开了学校,当然也离开了那个好习惯,写日记的习惯,那种希望被语文老师评价的渴望再也不复存在了.可是,在我们每个人的生活中,总有一些值得我们去书写的记忆.需要我们用自己的文字去记录,这或许会是让记忆保鲜的最简单直接的方式了,所以,我现在了博客园!只因为自己也是个技术人员,希望在这里学习进步,与大家

博客设计

一.系统概要说明 1.设计数据库,数据库设计是网站设计的重点,需要对网站需求进行分析,设计适合网站需求的数据库. 2.注册页面,设计网站需要用户的使用,注册则是重要的一部分,用户注册需要对用户信息的管理,因此,需要数据库的连接,进行用户注册的验证. 3.登录功能,在用户注册了账号后,拥有了该网站的使用权,则可以进行登录,而登录也需要数据库的验证. 4.用户发布问答,该网站是博客的发布平台,用户可以将身边的见闻发布到网站,此功能也需要数据库的连接,将用户发表的问答存到数据库的question表中,

【个人博客设计】框架与插件篇

概述 后端:Maven+Springboot+springsecurity+mybatis+jpa+redis+druid+lombok+pagehelper 前端:editor.md+amazeui+thymeleaf+uni-app+colorui 1.后端框架 1.1.Maven Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件.Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建规则有较高的可

android fragment 博客 学习记录

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创