自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 副作用和纯函数

纯函数给一个函数同样的参数,那么这个函数永远返回同样的值;副作用这个函数处理了和函数返回值无关的事情,输出结果的不确定性;修改了全局变量,修改了传入的参数,使用ajax进行api调用,甚至是console.log了一下,修改dom页面元素;...

2021-05-16 17:11:32 126

原创 搭建react+ts的项目:React 17 系统精讲 结合TS打造旅游电商平台1

ts的作用:给原生js添加静态类型的检查;ts与es6一样无法被浏览器直接读取,只能通过编译,https://create-react-app.dev/docs/adding-typescript/关于tsconfig文件:

2021-05-12 21:46:16 1114 2

原创 Restful API

1.什么是Restful API?Restful API它是rest式的接口,所以就要先了解什么是rest2.什么是rest?rest 不是一个技术,也不是一个协议rest 是一组架构约束的条件和原则,满足这些约束和原则的设计就是 Rest在REST规则中,有两个基础概念:对象、行为3.什么是对象和行为对象就是我们要操作的内容,例如要操作用户,那么用户就是对象行为有4种常用的:查看、创建、编辑、删除rest的提出者很巧妙的利用http现有方法来对应这4种行为:GET - 查看POST

2021-04-19 17:26:19 192

原创 egg中用passport鉴权实现github,weixin,qq等的三方登陆

官网教程:https://eggjs.org/zh-cn/tutorials/passport.html1.后端安装插件$ npm i --save egg-passport$ npm i --save egg-passport-github//如果是weixin,qq等三方登陆,那么就是安装egg-passport-weixin等2.后端开启插件plugin.ts passport: { enable: true, package: 'egg-passport', }

2021-04-18 16:12:44 1120 3

原创 github接入三方登录vue+egg+ts(踩坑)

1.什么是三方登录?三方登录就是通过第三方应用程序的账号密码, 快速的获取用户相关的信息实现登录例如: QQ登录点击QQ登录按钮之后,就会要求用户输入QQ的账号和密码只要用户输入了QQ的账号和密码, 我们就可以拿到用户的QQ信息我们就可以通过用户的QQ信息来实现注册登录2.三方登录存在的问题如果让用户在我们的网站上输入QQ的账号和密码,那么我们就可以窃取用户的QQ号, 做一些见不得人的事3.如何解决这个问题?通过OAuth协议进行授权4.什么是OAuth协议?(Open Authori

2021-04-16 16:18:56 363

原创 前端路由守卫实现路由权限控制vue&后端使用中间件进行接口权限控制egg

添加路由守卫, 实现权限控制router.beforeEach((to, from, next) => { // 1.如果访问的是注册或者登录, 那么就放行 if(to.path === '/login' || to.path === '/register'){ return next(); } // 2.获取当前的登录状态(获取会话存储里的token) const token = sessionStorage.getItem('token'); // 3.如果访

2021-04-10 01:02:20 731 3

原创 node中如何使用JWT(JSON Web Token)进行登陆状态的客户端存储

登陆状态的客户端存储有三种存储方式:(1)cookie: 如果存储的内容体积不大,可以存储在cookie中;(2) sessionStorage: 如果不需要持久化存储,可以将token存储在这里;(3)localStorage: 如果体积较大, 又需要持久化存储,可以将token存储在这里;...

2021-04-08 21:53:46 515 2

原创 egg中登陆状态的服务端存储流程

egg中无需生成随机数作为用户标识的sessionId,并且将sessionId设置为浏览器的cookie,因为已经封装好了,这块我们不用自己去做;我们只需要登陆校验成功后,保存用户信息到session中即可public async index(){ const { ctx } = this; try { // 1.校验数据和验证码 this.validateUserInfo(); const dat

2021-04-08 18:48:10 345

原创 session登录认证方案--登陆状态的服务端存储(附上node原生开发代码)

1.原理:session登录认证方案:用户从客户端传递用户名、密码等信息,服务端认证后将信息存储在session中,将session_id放到cookie中。以后访问其他页面,自动从cookie中取到session_id,再从session中取认证信息。相较于客户端cookie登陆认证方案,服务端存储登陆状态的话,可以提升数据的安全性, 也能够存储更多的内容.2.如何通过Session来存储登录状态2.1给每一个用户分配一个无关紧要的值session_id作为为一个标识放到cookie中2.2在服

2021-04-08 16:22:08 321

原创 node中如何使用cookie进行登陆状态的客户端存储

1.为什么要存储登录状态?因为在企业开发中有一些操作是只有登录之后才能操作的例如: 编辑用户信息, 查看用户订单等所以我们在登录之后需要存储用户的登录状态,以后在涉及到一些敏感操作的时候,我们就可以通过这个状态来判断用户是否已经登录来决定是否让用户进行相关敏感操作2.如何存储用户登录状态?2.1客户端存储 Cookie 直接用document.cookie=“name=lily;”2.2服务端存储 Session那么这篇文章我们讲解利用Cookie进行客户端的存储:3.Cooki

2021-04-08 13:24:30 390

原创 由特殊字符,数字和字母组合的用户密码正则表达式

const reg = /^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[,\.#%'\+\*\-:;^_`].*))[,\.#%'\+\*\-:;^_`0-9A-Za-z]{8,}$/;解析:^表示开头位置()表示捕获分组,()会把每个分组里的匹配的值保存起来,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推;(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值;不会保存起来;?= 询问后面跟着的东西是否等于这个.

2021-04-07 18:10:40 2225

原创 封装axios

占位

2021-04-06 22:24:29 68

原创 跨域问题解决方案Nginx &CORS流程详解(vue+egg案例演示)

什么是跨域?发送ajax请求时,浏览器要求当前网页和服务器必须是同源的,同源是指协议/一级域名/二级域名/端口号 必须一致,有一个不同就是跨域.如http://192.168.0.107:3001和http://192.168.0.107:3000,由于3000端口和3001端口不同, 所以就是跨域前后端分离项目中cookie的跨域问题项目分为混合开发和前后端分离开发两种类型的项目混合开发的项目:是前端代码和后端代码都放在同一个项目中,那么前后端同源,不存在跨域问题前后端分离的项目是把前端代码

2021-04-06 19:32:18 777

原创 如何利用http-server快速实现将混合开发改为前后端分离

将public文件夹下的前端页面文件单独拷贝出来,修改文件夹名字为front,1.安装http-server (注意这里的终端路径必须是该front文件夹路径)npm install --global http-server官网指南2.运行项目http-server -p 3003...

2021-04-06 16:36:17 159

原创 关于TS第三方头文件使用细节

使用别人编写好的头文件细节用@type/koa安装好别人编写好的头文件之后,去node_modules/@types/koa/index.d.ts中查看头文件的导出方式:如果是使用ES Module导出, 那么使用ES Module导入如果是使用Node Module导出, 那么使用Node Module导入如果是使用TS Module导出, 那么使用TS Module导入, 但是也可以使用ES Module或者Node Module导入以下是ES6模块化,node模块化和TS模块化规范:

2021-04-01 15:35:48 567 1

原创 搭建Koa+Typescript项目

1.搭建Koa+Typescript项目1.创建Node项目npm init --y2.生成配置tsconfig.json:为了在node中使用ts,首先安装ts,但是安装的ts代码不能直接执行,需要转换成js代码后才能执行,使用webpack可用webpack的ts-loader来转换,不使用webpack就用ts-node来转换;tsc --init用于生成tsconfig.json配置文件npm install typescript ts-node --save-dtsc --init

2021-04-01 14:48:28 1485

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除