返回顶部
首页 > 资讯 > 服务器 >Node.JS, Mongoose和Jade怎样搭建OAuth2服务器
  • 853
分享到

Node.JS, Mongoose和Jade怎样搭建OAuth2服务器

2024-04-02 19:04:59 853人浏览 独家记忆
摘要

今天就跟大家聊聊有关node.js, MonGoose和Jade怎样搭建OAuth2服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天我们来看

今天就跟大家聊聊有关node.js, MonGoose和Jade怎样搭建OAuth2服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

今天我们来看一个node.js的实际应用。这是国外的Paper应用开发者所搭建的OAuth3服务器,使用的主要技术包括:

- Node.JS 的Express框架

- Mongoose工具集,mongoDB的一个流行库,方便建立模型。

- bcrypt,用于密码加密

- superagent,用于测试

Papers是一项论文数据库移动应用,有iOSAndroid版本。写论文的同学们会很需要,关于它的介绍,请看开发者的官方博客。Http://blog.papersapp.com/oauth-server-in-node-js/

虽然Papers并不是开源的,但是作者已经把写好的node-oauth3-server模块以及Papers的认证过程一起打包放在了GitHub上,我们可以下载研究:

https://github.com/mekentosj/oauth3-example

在代码中的Models目录下,我们可以清楚的看到Model的Schema定义。从这里,我们可以明白OAuth3的需要处理的主要数据结构,包括access_token, refresh_token, oauth_client.

var OAuthAccessTokensSchema = new Schema({    accessToken: { type: String, required: true, unique: true },    clientId: String,    userId: { type: String, required: true },    expires: Date  });   var OAuthRefreshTokensSchema = new Schema({    refreshToken: { type: String, required: true, unique: true },    clientId: String,    userId: { type: String, required: true },    expires: Date  });   var OAuthClientsSchema = new Schema({    clientId: String,    clientSecret: String,    redirectUri: String  });   var OAuthUsersSchema = new Schema({    email: { type: String, unique: true, required: true },    hashed_passWord: { type: String, required: true },    password_reset_token: { type: String, unique: true },    reset_token_expires: Date,    firstname: String,    lastname: String  });

通过运行代码中的seed.js,我们创建了一个user.

var app = require('./app');  var models = require('./models');   models.User.create({    email: 'alex@example.com',    hashed_password: '$2a$10$aZB36UooZpL.fAgbQVN/j.pfZVVvkHxEnj7vfkVSqwBOBZbB/IAAK' }, function() {    models.OAuthClientsModel.create({      clientId: 'papers3',      clientSecret: '123',      redirectUri: '/oauth/redirect'   }, function() {      process.exit();    });  });

这样我们就可以开始体验这个Node.JS的OAuth3服务器了。先让Mongo运行起来,负责后台数据库, 比如"mongod -dbpath ./", 之后运行"npm start".

oliverluan@localhost:~/Documents/EvWork/node_oauth3_example/oauth3-example$ npm start   > oauth3-experiment@0.0.1 start /Users/oliverluan/Documents/EvWork/node_oauth3_example/oauth3-example  > ./node_modules/.bin/nodemon server.js   14 Apr 07:02:43 - [nodemon] v1.0.17  14 Apr 07:02:43 - [nodemon] to restart at any time, enter `rs`  14 Apr 07:02:43 - [nodemon] watching: *.*  14 Apr 07:02:43 - [nodemon] starting `node server.js`  connect.multipart() will be removed in connect 3.0  visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives  connect.limit() will be removed in connect 3.0  Express server listening on port: 3000  POST /oauth/token 200 102ms - 175b  GET /secret 200 2ms - 11b

模拟一个Oauth3的access token请求,运行这份文件(node getToken.js)

var request = require('request');   //client_id  var t_client_id = 'papers3';  //client_secret  var t_client_secret = '123';  //clientCredentials  以client_id:client_secret形式组合并转换成Base64-encoded  var clientCredentials = (t_client_id + ':'+t_client_secret).toString('base64');  //用户名  var t_username = 'alex@example.com';  //密码  var t_password = 'test';   console.log(clientCredentials);   //发送Post请求获取Token  request.post({      url: 'http://' + clientCredentials + '@localhost:3000/oauth/token',    fORM: {      grant_type: 'password',      username: t_username,      password: t_password,      client_id: t_client_id,      client_secret: t_client_secret    },  }, function(err, res, body) {    console.log(body);    //获得Token    var accessToken = JSON.parse(body).access_token;     request.get({      url: 'http://localhost:3000/secret',      headers: { Authorization: 'Bearer ' + accessToken }    }, function(err, res, body) {      console.log(body);     });  });

成功获得access token.

oliverluan@localhost:~/Documents/EvWork/node_oauth3_example/oauth3-example$ node getToken.js  papers3:123  {    "token_type": "bearer",    "access_token": "620bb362f32857d5174802e06065305874953597",    "expires_in": 3600,    "refresh_token": "569be5f4cc1ea943021b3676eaa2a51825c2c257" }  Secret area

看完上述内容,你们对Node.JS, Mongoose和Jade怎样搭建OAuth2服务器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网服务器频道,感谢大家的支持。

--结束END--

本文标题: Node.JS, Mongoose和Jade怎样搭建OAuth2服务器

本文链接: https://lsjlt.com/news/86229.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Node.JS, Mongoose和Jade怎样搭建OAuth2服务器
    今天就跟大家聊聊有关Node.JS, Mongoose和Jade怎样搭建OAuth2服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天我们来看...
    99+
    2024-04-02
  • Node.js怎么搭建HTTP服务器
    这篇文章主要介绍“Node.js怎么搭建HTTP服务器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node.js怎么搭建HTTP服务器”文章能帮助大家解决问题。什...
    99+
    2022-12-03
    node.js http
  • 怎样搭建云服务器
    搭建云服务器需要考虑许多因素,下面是一些常见的步骤: 选择云服务器提供商:选择一个有信誉、规模较大、服务良好的云服务器提供商是至关重要的。在选择云服务器提供商时,可以查看其服务条款、支持计划、安全政策和其他因素,以确定其是否适合您的需求...
    99+
    2023-10-26
    服务器
  • 使用node.js搭建服务器
    使用node搭建小型服务器(其实就是分析url然后输出文件给客户端) 最近需要完成一个课程设计,被项目经理(组长)分配写界面,但是总觉得只写前端的话缺了点什么,所以想自己写下后端玩一下。 期间还稍微纠结了...
    99+
    2022-06-04
    服务器 node js
  • 如何搭建Node.Js服务器
    这篇文章给大家分享的是有关如何搭建Node.Js服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境...
    99+
    2024-04-02
  • 怎么使用Node.js搭建HTTP服务器
    本篇内容主要讲解“怎么使用Node.js搭建HTTP服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Node.js搭建HTTP服务器”吧!什么是 HTTP 服务?HTTP 协议是什么...
    99+
    2023-06-17
  • 怎么使用Node.js搭建Web服务器
    这篇文章主要介绍“怎么使用Node.js搭建Web服务器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Node.js搭建Web服务器”文章能帮助大家解决问题。1、 Node.js 创建的第一...
    99+
    2023-07-02
  • node.js怎么搭建简单web服务器
    今天小编给大家分享一下node.js怎么搭建简单web服务器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2022-12-01
    node.js web服务器
  • 云服务器搭建和vps一样吗?
    云服务器是一种虚拟化软件,通常是由大型计算机公司或云计算服务提供商提供。与个人计算机相比,云服务器允许企业或组织快速创建和托管虚拟服务器,使其可以快速扩展和运行新的应用程序。 与VPS(Virtual Private Server)不同,...
    99+
    2023-10-26
    服务器 vps
  • 使用Node.js搭建Web服务器
    1、 Node.js 创建的第一个应用 1、引入http模块 var http = require("http"); 2、 创建服务器 接下来我们使用 http.creat...
    99+
    2024-04-02
  • 怎么样搭建高防服务器
    搭建高防服务器的步骤:登录高防服务器提供商官网。进入个人中心,打开管理面板。点击添加,填写需要配置防护的网站域名。选择实例与线路。修改DNS解析。更换源站IP。给高防IP加白即可。...
    99+
    2024-04-02
  • RHEL 5怎样搭建Samba服务器
    这篇文章将为大家详细讲解有关RHEL 5怎样搭建Samba服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。RHEL 5下Samba的搭建相对于其他系统来说是比较轻松的,下面就对RHEL ...
    99+
    2023-06-17
  • Linux怎样搭建文件服务器
    今天就跟大家聊聊有关Linux怎样搭建文件服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在一个团队或者公司层面上,做一个本地的文件服务器,将网上的资源下载到本地,是有必要的。这...
    99+
    2023-06-28
  • 阿里云怎样搭建服务器
    简介 在云计算时代,越来越多的企业和个人选择使用云服务器来托管他们的应用程序和数据。阿里云作为中国领先的云计算服务提供商,提供了丰富的服务器产品和解决方案,帮助用户快速搭建和管理自己的服务器环境。本文将介绍如何利用阿里云搭建服务器,包括选择...
    99+
    2023-12-27
    阿里 服务器
  • 怎么用CentOS7+node.js+nginx+MySQL搭建服务器
    本篇内容介绍了“怎么用CentOS7+node.js+nginx+MySQL搭建服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工具安装...
    99+
    2023-06-17
  • Linux系统怎样搭建svn服务器
    本篇文章给大家分享的是有关Linux系统怎样搭建svn服务器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。svn即版本控制系统,svn是最流行的开源的版本控制系统,可用来管理任...
    99+
    2023-06-28
  • Linux系统怎样搭建HTTP服务器
    Linux系统怎样搭建HTTP服务器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 HTTP服务器一般是指网站服务器,是指某类计算机驻留在互联网的程序...
    99+
    2023-06-28
  • 怎样搭建自己的云服务器
    搭建自己的云服务器需要了解一些技术和相关的知识,以下是一些步骤和建议: 选择云服务提供商:需要选择一个可靠的、知名的云计算服务提供商,这将帮助您获得最好的服务和价格。可以通过搜索引擎或者其他可靠来源来查找相关的信息。 配置服务器环境:确...
    99+
    2023-10-26
    自己的 服务器
  • 怎么使用node.js搭建简单web服务器
    这篇文章主要介绍“怎么使用node.js搭建简单web服务器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用node.js搭建简单web服务器”文章能帮助大家解决问题。准备首先,需要安装nod...
    99+
    2023-06-17
  • 怎么使用Node.js来搭建本地服务器
    这篇文章主要讲解了“怎么使用Node.js来搭建本地服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Node.js来搭建本地服务器”吧!1.安装Node.js首先需要安装Node...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作