Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >nodejs添加jsonwebtoken验证

nodejs添加jsonwebtoken验证

作者头像
用户1141560
发布于 2019-05-24 12:29:36
发布于 2019-05-24 12:29:36
1.2K00
代码可运行
举报
文章被收录于专栏:西安-晁州西安-晁州
运行总次数:0
代码可运行

具体使用模块:

使用compression压缩处理请求响应、cors模块添加跨域、helmet安全模块、body-parser解析请求参数、jsonwebtoken用于生成及校验token、使用内置cluster模块开启多进程模式,具体源码如下:

1、项目组成

2、具体源码

server.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// =================================================================
// get the packages we need ========================================
// =================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');
var cors = require('cors'); //cors支持
var compression = require('compression'); //压缩
var helmet = require('helmet'); //安全插件

var config = require('./config'); // get our config file
var User = require('./app/models/user'); // get our mongoose model
var Routes = require('./routes'); // get our mongoose model
var Authorize = require('./routes/authorize'); // get token model
var CheckToken = require('./routes/checktoken'); // check token model
var Signup = require('./routes/signup'); // signup model

// =================================================================
// configuration ===================================================
// =================================================================
var port = process.env.PORT || 8080; // used to create, sign, and verify tokens
mongoose.connect(config.database); // connect to database

// use body parser so we can get info from POST and/or URL parameters
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// use morgan to log requests to the console
app.use(morgan('common'));

app.use(helmet());

//启用cors
app.use(cors({
    origin: ['http://localhost:8080'],
    methods: ['GET', 'POST'],
    alloweHeaders: ['Conten-Type', 'x-access-token']
}));

app.use(compression());

//受token保护的路由
app.use("/api", CheckToken);
Routes(app);

// =================================================================
// start the server ================================================
// =================================================================
app.listen(port, function() {
    console.log('My Api is running...');
});

config.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {

	'secret': 'ilovescotchyscotch',
	'database': 'mongodb://127.0.0.1:27017/tokenApi'
	
};

cluster.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var cluster = require('cluster');
var os = require('os');

const CPUS = os.cpus();

if (cluster.isMaster) {
    CPUS.forEach(function() {
        cluster.fork();
    });
    cluster.on('listening', function(worker) {
        console.log('Cluster %d connected', worker.process.pid);
    });

    cluster.on('disconnect', function(worker) {
        console.log('Cluster %d disconnected', worker.process.pid);
    });

    cluster.on('exit', function(worker) {
        console.log('Cluster %d dead', worker.process.pid);
        // Ensuring a new cluster will start if an old one dies
        cluster.fork();
    });
} else {
    require("./server");
}

其他源码已上传至githubhttps://github.com/caiya/node-token-authentication-api

注册:

访问受保护的路由

根据用户名密码获取token:

发送错误的token:

发送正确的token:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Vue3和Node.js开发管理端系统实践
开始之前推荐一篇实用的文章:探索微信小程序的奇妙世界:从入门到进阶原创 ,这篇文章从入门到进阶,全面剖析小程序开发流程与技巧,适合各层次开发者,助力快速掌握并提升技能,推荐大家前往阅读。
用户3484293
2024/12/02
3090
不容错过的 Node.js 项目架构
Express.js 是用于开发 Node.js REST API 的优秀框架,但是它并没有为您提供有关如何组织 Node.js 项目的任何线索。
五月君
2019/12/16
6K0
不容错过的 Node.js 项目架构
众店模式与城市X选模式:消费循环分红省钱:无痛消费
“我店模式”和“城市酷选模式”直接转化为代码是一个复杂且庞大的任务,因为这涉及到多个系统模块的开发,包括前端用户界面、后端服务器逻辑、数据库设计、支付系统、区块链(如果涉及绿色积分通证化)等。以下是一个简化的、概念性的代码框架,用于指导如何开始构建这样的系统。请注意,这只是一个起点,实际开发需要详细的需求分析、设计、测试和迭代。
商业模式画卷
2024/10/11
1630
众店模式与城市X选模式:消费循环分红省钱:无痛消费
NodeJS多核处理模cluster解读
大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算。所以,有人开发了第三方的cluster,让node可以利用多核CPU实现并行。
用户2936342
2018/08/27
8560
全栈 Todolist-database 篇(Cloud MongoDB)
全栈 Todolist-MongoDB 篇 写在最前面 这篇是辅助 server 篇 配置 MongoDB clound 数据库的文章,大家可以先看 server 篇。 您可以按照顺序阅读 全栈 Todolist-server 篇 Node(server) React(client) MongoDB(database) Typescript Todolist-database 篇(Cloud MongoDB) Todolist-client 篇(React Typescript) 0、注册使用 MongoD
西南_张家辉
2021/02/02
7240
【node笔记】前后端分离的用户注册功能
新建 vue_node 文件夹, 建立子文件夹 serve, 文件夹下打开 cmd 输入 npm init -y 初始化项目描述文件 
一尾流莺
2022/12/10
1.6K0
【node笔记】前后端分离的用户注册功能
一篇文章构建你的 NodeJS 知识体系(W字长文)
最近读《重学前端》,开篇就是让你拥有自己的知识体系图谱,后续学的东西补充到相应的模块,既可以加深对原有知识的理解,又可以强化记忆,很不错的学习方案。
coder_koala
2020/08/27
1.9K0
Node.js 常见面试题速查
process 是一个全局变量,它提供当前 Node.js 进程的有关信息,而 process.argv 属性则返回一个数组,数组中的信息包括启动 Node.js 进程时的命令行参数
Cellinlab
2023/05/17
8310
[译] 用 Typescript + Node 配合 mongDB 写简单接口
写在最前面 使用 node 完成一个 todolist app 的 server 端,其中包括基本的 ts 配置方案和完成了 Models 和 Controler 层。 提示:需要对 Typescript 有一定了解,server 和 client 端均使用 Typescript 默认已经安装好 yarn或者npm 您可以按照顺序阅读 全栈 Todolist-server 篇 Node(server) React(client) MongoDB(database) Typescript Todolist-d
西南_张家辉
2021/02/02
1.5K0
从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)
我们在平时所用到的一些网站、App,它们会将我们的数据进行保存,当我们关闭这些网站或者 App 后,下次打开还能看到我们之前的一些文字、视频记录。在迷你全栈电商应用实战系列的第二篇教程中,我们将通过基于 Node.js 平台的 Express[1] 框架实现后端 API 数据接口,并且将数据存储在 MongoDB[2] 中。这样我们的网站就能够记录用户添加的商品,并且无论以后什么时候打开,都能获取我们之前的记录。
一只图雀
2020/04/07
3.1K0
在nodejs中创建cluster
在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。
程序那些事
2021/01/28
3.5K0
Node.js中的关注点分离
作者 | Emeni Oghenevwede 译者 | 明知山 策划 | 丁晓昀 关键要点 关注点分离是 Node.js 的一种架构,可以确保代码的可读性、易于重构和良好的代码协作。 通过遵循关注点分离原则,你可以确保最终的系统是稳定和可维护的。 关注点分离的原则确保了组件不会重复,从而使系统更加容易维护和重构。 关注点分离原则认为,业务逻辑应该与控制器分离。这简化了控制器的开发和测试用例的编写。 关注点分离原则有助于提升代码的可重用性。这样可以很容易地找到故障的来源以及如何将其从整个系统中隔
深度学习与Python
2023/03/29
6K0
Node.js中的关注点分离
鉴权实战 - SSO
认证中心,Token检查路由 passport/routes/check-token.js
Cellinlab
2023/05/17
8060
鉴权实战 - SSO
Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb
书童小二
2018/09/03
7.3K0
Node.js基于Express框架搭建一个简单的注册登录Web功能
nodejs之Express框架初体验
在前面Node基础中我们学习了 Node.js 中的 http 模块,虽然知道使用 Node.js 中的 http 模块是可以开发 Web 应用的,处理静态资源,处理动态资源,请求分发(路由)等等,也可以让开发者对 HTTP 协议的理解更加清晰,但是使用起来比较复杂,开发效率低。
henu_Newxc03
2021/12/26
1.9K0
🥬🐕 node的第一个接口:注册
mongodb安装如果是Mac的请看 这篇文章 操作mongodb的插件有很多,这里我们使用mongoose 安装插件
用户4793865
2023/01/12
1.2K0
MERN全栈开发demo
创建一个免费账号 https://www.mongodb.com/cloud/atlas
lilugirl
2020/11/23
7630
MERN全栈开发demo
nodejs中cookie、session的使用
因为http会话的无状态性,为了标记用户的登录状态,便出现了cookie。cookie分为很多种,有普通cookie、签名cookie、json cookie等,这里主要记录下在express应用中如
用户1141560
2017/12/26
3.7K0
Nodejs子进程
进程是CPU分配资源的最小单位,分配独立内存,进程之间可通信,但是必须通过内核,使用IPC接口来做,代价比较大 线程是CPU调度的最小单位
epoos
2022/06/06
1.4K0
Nodejs子进程
如何在Node.js和Express中上传文件
大量的移动应用程序和网站允许用户上传个人资料图片和其他文件。 因此,在使用Node.js和Express构建REST API时,通常需要处理文件上传。
ccf19881030
2020/10/26
6.7K0
如何在Node.js和Express中上传文件
相关推荐
使用Vue3和Node.js开发管理端系统实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档