vue全家桶+Koa2开发笔记(7)--登陆注册功能
1 文件结构:pages中放置页面代码;server 分为 dbs 和interface两个文件夹;
dbs设置有关数据库的代码;interface设置接口信息;

2.2 先看dbs的,在dbs的配置文件config.js中定义:
export default { //该文件是配置文件,在 server/index 和interface 中引入使用。
dbs:'mongodb://127.0.0.1:27017/student',//配置数据库host和数据库名字student
redis:{ //配置redis快速存储的数据库地址和端口
get host(){
return '127.0.0.1'
},
get port(){
return 6379
}
},
smtp:{ //配置发送邮箱的信息
get host(){
return 'smtp.qq.com' //smtp发送邮件的协议
},
get user(){
return '2751581738@qq.com' //邮箱地址
},
get pass(){
return 'XXXXXXXX' //授权码
},
get code(){ //发送的四位随机码
return ()=>{
return Math.random().toString(16).slice(2,6).toUpperCase()
}
},
get expire(){
return ()=>{ //设置验证码的设置有效期
return new Date().getTime()+60*60*1000
}
}
}
}
然后在数据库的dbs中model中新建数据表:
import mongoose from 'mongoose' //使用 mongoose 新建数据库的表 users
const Schema = mongoose.Schema
const UserSchema=new Schema({
username:{
type:String,
unique:true,
require:true
},
password:{
type:String,
require:true
},
email:{
type:String,
require:true
}
}) export default mongoose.model('User',UserSchema)
还要在server/index.js中
import mongoose from 'mongoose'
mongoose.connect(dbConfig.dbs,{
useNewUrlParser:true
})
处理完数据库之后,再来设置接口,在interface文件夹中:
首先在interface/utils文件夹下新建 axios和passport两个文件, 然后设置 passport文件:
passport获取用户在调用登陆接口时,输入的用户名和密码,然后在数据库中根据用户名判断密码是否正确;并且在用户执行login()时,序列化用户名,待
最后,我们需要在app中开启koa-passport对session的支持
app.use(passport.initialize())
app.use(passport.session())
app.use(passport.initialize()) 会在请求周期ctx对象挂载以下方法与属性
- ctx.state.user 认证用户
- ctx.login(user) 登录用户(序列化用户)
- ctx.isAuthenticated() 判断是否认证
passport.session()则是passport自带的策略,用于从session中提取用户信息
vue全家桶+Koa2开发笔记(7)--登陆注册功能的更多相关文章
- vue全家桶+Koa2开发笔记(6)--app开发
1.环境配置 详见文章<Nuxt 开发 - 项目初始化> 1.1 使用nuxt脚手架 https://zh.nuxtjs.org/guide/installation 1.2 在nod ...
- vue全家桶+Koa2开发笔记(5)--nuxt
1. nuxt项目初始化报错 下面是使用 koa 模板方法初始化一个项目,使用该方法需要将 nuxt 的版本降至1.4.2: 官方 https://zh.nuxtjs.org/guide/instal ...
- vue全家桶+Koa2开发笔记(2)--koa2
1. 安装koa脚手架的时候 执行命令 koa2 -e koa-learn 注意要使用-e的方式,才会生成ejs的模板 2. async await的使用方法:存在的意义:提高promise的可读性 ...
- vue全家桶+Koa2开发笔记(8)--开发网页
1.使用 mongoose 动态倒入数据 mongoimport -d student -c areas areas.dat -d 后面是数据库名称: -c后面是表名称 最后是数据源 2.使用vue的 ...
- vue全家桶+Koa2开发笔记(1)--vuex
1. 安装webpack的问题: webpack坑系列--安装webpack-cli 2. vue-cli(vue脚手架)超详细教程 3. 在命令行中使用 touch 执行新建文件: 4. 关 ...
- vue全家桶+Koa2开发笔记(4)--redis
redis用来在服务器端存放session 1 安装redis brew install redis 启动redis redis-server 2 安装两个中间件 npm i koa-ge ...
- vue全家桶+Koa2开发笔记(3)--mongodb
1. 安装 momgodb brew install mongodb安装成功后执行 which mongod启动:mongod 2. 下载可视化操作数据库的软件 https://robomongo.o ...
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- [在线+源码]vue全家桶+Typescript开发一款习惯养成APP
# vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...
随机推荐
- Excel 数据读入到DataSet
using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.I ...
- C++基础知识:异常处理
1.C++中的异常处理(1)C++ 中提供了 try和catch语句块对可能产生异常的代码进行分开处理 -try语句块处理正常逻辑 -catch语句块处理异常(2)C++ 语言中通过 throw语 ...
- SQL-29 使用join查询方式找出没有分类的电影id以及名称
题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...
- 无法获取 vmci 驱动程序版本: 句柄无效
https://jingyan.baidu.com/article/a3a3f811ea5d2a8da2eb8aa1.html 将 vmci0.present = "TURE" 改 ...
- 【PyImageSearch】Ubuntu16.04使用OpenCV3.3.0实现图像分类
这篇博文将会展示如何采用一个预训练的深度学习网络(模型)在ImageNet的数据集并把它当作输入图像. 首先说明,运行环境为Ubuntu16.04(或者MacOS),windows暂不支持,已经编译好 ...
- spring4全注解web项目demo
记得没接触框架的时候,写demo测试时真的很爽,新建web项目,然后随便写写servlet随便调试 框架越来越多,配置记不得了,整合容易出问题,集成新东西越来越少了,不敢动了. 这是个spring4的 ...
- 强震记录和GPS记录,地震波记录的区别
强震记录的是加速度数据,但gps记录的是位移数据.这样的话,强震记录应该说是近场地震数据: 那么, 为什么不干脆用近场的地震波仪器呢,是因为,地震仪记录会限幅,导致记录不全.
- idea打包 - 可执行jar包
需求:有一个基于SpringBoot的socket服务端程序,实现了对消息的接收.发送并行操作.此时想要将其构建成可执行的Jar包,执行 java -jar xx.jar后能够进行消息的收发. 分析: ...
- Git客户端的安装与配置入门
GitLab与Git客户端的安装与配置入门,每次配置完一段时间,就忘记配置过程了,为了自己和同学们以后有所参照,特记录了本次下载和配置,其实Git就是一个版本控制系统,类似于SVN,CVS等 下载:W ...
- 解决Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext
我使用的是5.2.8的hibernate的jar包,运行的时候却报错Could not open Hibernate Session for transaction; nested exception ...