koa 项目实战(六)注册接口加密】的更多相关文章

项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进程来为客户提供服务.同时每个ftp服务进程配套了nobody进程(内部私有进程),主要是为了做权限提升和控制. 实现功能: 除了基本的文件上传和下载功能,还实现模式选择.断点续传.限制连接数.空闲断开.限速等功能. 用到的技术: socket.I/O复用.进程间通信.HashTable 欢迎技术交…
1.安装模块 npm install koa-bodyparser --save npm install bcryptjs --save 2.引入模块 根目录/app.js const bodyParser = require('koa-bodyparser'); // 实例化koa const app = new Koa(); app.use(bodyParser()); 3.注册接口 根目录/routes/api/users.js const Router = require('koa-ro…
1.验证注册参数 根目录/validation/register.js const Validator = require('validator'); const isEmpty = require('./is-empty'); module.exports = function validateRegisterInput(data) { let errors = {}; data.name = !isEmpty(data.name) ? data.name : ''; data.email =…
1.登录接口 /** * @route POST api/users/login * @desc 登录接口地址 * @access 接口是公开的 */ router.post('/login', async ctx => { // 查询 const findResult = await User.find({ email: ctx.request.body.email }); const user = findResult[0]; const password = ctx.request.bod…
1.安装模块 npm install koa-passport -D npm install passport-jwt -D 2.解析token 根目录/config/passport.js const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt; const keys = require('../config/keys'); const opts…
1.安装模块 npm install jsonwebtoken --save 2.引用 const jwt = require('jsonwebtoken'); ... // 返回token const payload = { id: user.id, name: user.name, avatar: user.avatar }; const token = jwt.sign(payload, keys.secretOrkey, { expiresIn: 3600 }); 3.keys 根目录/…
1.创建工具类 根目录/config/tools.js const bcrypt = require('bcryptjs'); const tools = { enbcrypt(password) { var salt = bcrypt.genSaltSync(10); var hash = bcrypt.hashSync(password, salt); return hash; } }; module.exports = tools; 2.引用 根目录/routes/api/users.js…
1.创建测试接口,并引入用户模型 根目录/routes/api/users.js const Router = require('koa-router'); const router = new Router(); // 引入User const User = require('../../models/User'); /** * @route GET api/users/test * @desc 测试接口地址 * @access 接口是公开的 */ router.get('/test', as…
由于项目中大部分界面都有一个后退键和一个标题栏,为避免代码冗杂以及便于利用,我们可以将后推荐和标题栏单独抽取出来定义一个标题栏布局,在 res/layout 目录下新建一个 Layout resource file ,Root element 选用 RelativeLayout 具体代码如下: main_title_bar.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln…
由于项目中大部分界面都有一个后退键和一个标题栏,为避免代码冗杂以及便于利用,我们可以将后推荐和标题栏单独抽取出来定义一个标题栏布局,在 res/layout 目录下新建一个 Layout resource file ,Root element 选用 RelativeLayout 具体代码如下: main_title_bar.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln…
1.安装模块 npm install validator -D 2.验证注册参数 根目录/validation/register.js const Validator = require('validator'); const isEmpty = require('./is-empty'); module.exports = function validateRegisterInput(data) { let errors = {}; if (!Validator.isLength(data.n…
1.配置文件 根目录/config/keys.js module.exports = { mongoURI: 'mongodb://127.0.0.1:27017/mongodb' } 2.启动文件 根目录/app.js const Koa = require('koa'); const Router = require('koa-router'); const mongoose = require('mongoose'); // 实例化koa const app = new Koa(); co…
1.安装模块 npm install koa koa-router --save npm install -g nodemon 2.入口文件 app.js const Koa = require('koa'); const Router = require('koa-router'); // 实例化koa const app = new Koa(); const router = new Router(); // 路由 router.get('/', async (ctx) => { ctx.b…
1.安装模块 npm install gravatar --save 2.使用 根目录/routes/api/users.js const gravatar = require('gravatar'); ... const avatar = gravatar.url(ctx.request.body.email, { s: '200', r: 'pg', d: 'mm' }); 3.登录官网上传头像 https://en.gravatar.com/ 4.效果图 .…
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进程来为客户提供服务.同时每个ftp服务进程配套了nobody进程(内部私有进程),主要是为了做权限提升和控制. 实现功能: 除了基本的文件上传和下载功能,还实现模式选择.断点续传.限制连接数.空闲断开.限速等功能. 用到的技术: socket.I/O复用.进程间通信.HashTable 欢迎技术交…
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进程来为客户提供服务.同时每个ftp服务进程配套了nobody进程(内部私有进程),主要是为了做权限提升和控制. 实现功能: 除了基本的文件上传和下载功能,还实现模式选择.断点续传.限制连接数.空闲断开.限速等功能. 用到的技术: socket.I/O复用.进程间通信.HashTable 欢迎技术交…
GraphQL + React Apollo + React Hook 大型项目实战(32 个视频) GraphQL + React Apollo + React Hook 大型项目实战 #1 介绍「03:42」 GraphQL + React Apollo + React Hook 大型项目实战 #2 搭建 Apollo 客户端「15:44」 GraphQL + React Apollo + React Hook 大型项目实战 #3 写好路由「04:07」 GraphQL + React Ap…
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进程来为客户提供服务.同时每个ftp服务进程配套了nobody进程(内部私有进程),主要是为了做权限提升和控制. 实现功能: 除了基本的文件上传和下载功能,还实现模式选择.断点续传.限制连接数.空闲断开.限速等功能. 用到的技术: socket.I/O复用.进程间通信.HashTable 欢迎技术交…
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务进程来为客户提供服务.同时每个ftp服务进程配套了nobody进程(内部私有进程),主要是为了做权限提升和控制. 实现功能: 除了基本的文件上传和下载功能,还实现模式选择.断点续传.限制连接数.空闲断开.限速等功能. 用到的技术: socket.I/O复用.进程间通信.HashTable 欢迎技术交…
Postman实现接口测试内容大纲一览: ​ 一.什么是接口?为什么需要接口? ​ 接口指的是实体或者软件提供给外界的一种服务. 因为接口能使我们的实体或者软件的内部数据能够被外部进行修改.从而使得内部和外部实现数据交互.所以需要接口. 比如: 硬件接口:USB接口:它的作用是使电脑能够和U盘等外部设备交互数据. 软件接口:右称:API(application program interface):微信提现功能调用银联接口实现数据交互. 二.接口返回的数据格式. 1.json格式如: {‘err…
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建个数据模型,并且添加接口和实现类. 添加EF上下文对象 按照我们以前的习惯,我们还是新建几个文件夹 Commons:存放帮助类 Domians:数据模型 Services:接口和实现类 我们在Domains文件夹下添加一个类库 Domain 我们新建一个类 ApplicationDbContext 继承 DbContext using Microsoft.Entit…
[.NET Core项目实战-统一认证平台]开篇及目录索引 一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建的自定义化(例如Socket,Netty)的消息方式进行调用,相比http协议,我们省掉了不少http中无用的消息内容.因此很多系统内部调用仍然采用自定义化的RPC调用模式进行通信,毕竟速度和性能是内网的关键指标之一,而标准化和语义无关性在外网中举足…
Django商城项目笔记No.8用户部分-注册接口实现 users的view.py中增加如下代码 class RegisterUserView(CreateAPIView): """ 用户注册视图 """ serializer_class = serializers.RegisterUserSerializer 在users中创建serializers.py class RegisterUserSerializer(serializers.Mod…
** 项目一共有 16 个页面,是一个电商网销项目,自己在网上的某网上找的一个要做的网站的设计图: 页面主要包括:  登录页 -- 注册页 -- 首页 -- 产品列表页 -- 产品详情页 -- 会员中心页 -- 我的购物车页 -- 支付页 -- 支付成功页 -- 支付失败页 -- 评价页 -- 评价详情页 -- 我的订单页 -- 订单详情页 -- 确认订单页 -- 收货地址列表页: 后端技术: node express  mongo: 前端技术:vue-cli  elementui  axios…
至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的某个资源先要访问网关,网关要对请求进行认证,然后要访问认证中心,认证通过后才能访问对应的资源.今天我们要讲的是在认证的时候我们需要较验用户的信息,这时就要访问用户服务(因该项目采用微服务,所有的模块都叫服务),这就涉及到服务之间的访问与发现了.所以这节重点在于使用consul注册服务与发现服务.多说…
上一篇: [WEB API项目实战干货系列]- Web API 2入门(一) 这一篇我们主要介绍如何做API帮助文档,给API的调用人员介绍各个 API的功能, 输入参数,输出参数, 以及在线测试 API功能(这个也是方便我们自己开发调试) 我们先来看看我们的API最终帮助文档及在线测试最终达到的效果: 概要图   GET API 添加产品API: 删除产品 API 接下来我们动手来实现上面的功能 给所有API添加注释信息 代码如下 [RoutePrefix("api/products"…
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1.  摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等,Asp.Net Core 2.0下该如何调整与使用我们以前常用的解加密算法类呢,下面是我整理的MD5加密.AES&DES对称加解密.Encrypt&Decrypt加解密完整实例.希望能给大家提供一些参考和帮助. 2.  MD5加密封装 MD5常用加密FormsAuthentication.Ha…
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我们介绍了网关使用Redis进行缓存,并介绍了如何进行缓存实现,缓存信息清理接口的使用.本篇我们将介绍如何实现网关自定义客户端授权,实现可以为不同的接入客户端设置不同的访问权限. .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论. 一.功能描述 网关重点功能之一鉴权,需要实现对不同的客户端进行授权访问,禁止访问未经授权的路由地址,且需要对无权访问的请求,返回通用的格式. 比如网关有1-10个可…
本文目录1. 摘要2. MD5加密封装3. AES的加密.解密4. DES加密/解密5. 总结 1.  摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等,Asp.Net Core 2.0下该如何调整与使用我们以前常用的解加密算法类呢,下面是我整理的MD5加密.AES&DES对称加解密.Encrypt&Decrypt加解密完整实例.希望能给大家提供一些参考和帮助. 2.  MD5加密封装 MD5常用加密FormsAuthentication.HashPas…
Django商城项目笔记No.9用户部分-注册接口签发JWTtoken 我们在验证完用户的身份后(检验用户名和密码),需要向用户签发JWT,在需要用到用户身份信息的时候,还需核验用户的JWT. 关于签发和核验JWT,我们可以使用Django REST framework JWT扩展来完成. 安装配置 # 安装 pip install djangorestframework-jwt # 配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES':…