基于nodejs的oauth2实现以及源码参考
来源:互联网 发布:vscode移除文件夹 编辑:程序博客网 时间:2024/06/05 06:42
通过nodejs服务器实现一整套oauth2的基本框架
源码: http://download.csdn.net/download/panshang1994/10165821
依赖包
npm install oauth2-server@2.4.1
oauth2 结构
| ├──oauth2 // 主目录| ├──controller // 控制器| ├──model // 数据库模型| ├──scripts // 添加脚本| ├──middleware // 用于routes的中间件| ├──model // 用于oauth2的模型
oauth2 嵌入
中间件验证
router.all('/openapi', oauthMiddleware.oauthDoor, fooCtrl.Foo)
获取 access_token
router.all('/oauth/access_token', oauthMiddleware.getAccessToken)
一.【模式1】 AppId、AppSecret (Client模式)
1.[导入Client]
方式1 使用脚本导入
node ./backend/oauth2/scripts/importnew
可以配置 AppId、AppSecret, 然后运行脚本完成导入新的第三方App
方式2 通过Api接口新增
api 接口: ‘/oauth/client/add’
请求方式1
body: { clientId: String}
将保存client名称为指定名称,方便第三方应用记忆
请求方式2
body: {}
将自动生成 sha1 哈希
2.申请access_token
申请接口: /oauth/access_token
参数表:
const reqExample = { method: 'POST', Headers: { 'Content-Type': "application/x-www-form-urlencoded" }, body: { grant_type: 'client_credentials', client_id: 'shinepans', // importnew scripts example client_secret: '123' // simple password in test in importnew scripts }}
请求成功后,服务器将返回:
return example = { "token_type": "bearer", "access_token": "e5cde9fbeef278b3eebcf55b3ac125589958446a", "expires_in": 3600, "refresh_token": "c47147ab573e478ed69318690cdd64da04a40790"}
3.通过得到的access_token访问api
请求接口实例:
‘/openapi/subjects’
请求参数:
const reqExample = { Headers: { "Authorization": "Bearer ad77e2040461b23ad2624e9e31076fb92f39ad39" }}
返回结果示例:
return example = { "err": 0, "data": []}
关于认证模式
当前使用Clinet认证方式,oauth2支持4中认证模式,当前已实现,模拟微信的oauth2,即通过code获取access_token以及第三方登录,已有方案,如需开发,可给我留言,我们一起讨论。
关于代码
代码是从实际项目中剥离出来,如果需要嵌入或运行,请仔细审阅代码,需要的改动非常小,甚至不需要改动,欢迎使用oauth2参考代码。
关于测试
当前剥离项目暂没有写任何测试,您可以先通过 postman等工具进行测试,或通过写脚本提交http请求来测试。
关于代码源参考库
- oauth2-server github仓库
- node-oauth2-server-example github仓库
阅读全文
0 0
- 基于nodejs的oauth2实现以及源码参考
- 【学无止境】基于ThinkPHP的OAuth2.0实现 ------ OAuth2.0个人学习笔记 One
- 【学无止境】 基于ThinkPHP的OAuth2.0实现 ----OAuth2.0 个人学习笔记 Two
- 基于oauth2.0的第三方登录实现
- 基于nodejs的简单分页的实现
- 基于nodeJS实现的几个功能
- NodeJS 实现基于 token 的认证应用
- 基于OAUTH2.0的授权操作
- 基于OAuth2的认证(译)
- libCoAP的源码以及实现
- nodejs基于fibers实现同步
- 基于promise.js实现nodejs的promises库
- 使用 AngularJS & NodeJS 实现基于 token 的认证应用
- 使用 AngularJS & NodeJS 实现基于 token 的认证应用
- 使用 AngularJS & NodeJS 实现基于 token 的认证应用
- 使用 AngularJS & NodeJS 实现基于 token 的认证
- 使用 AngularJS & NodeJS 实现基于 token 的认证应用
- 基于NodeJS实现的一个css预处理器
- 大新闻!微软正考虑添加 Python 为官方的 Excel 脚本语言
- 趣图:我司的开发进程是这样子的
- 刚刚,阿里发布了一个重磅技术炸弹……
- vs code 安装插件出现XHR error 解决办法
- ogre 阴影技术分析记录
- 基于nodejs的oauth2实现以及源码参考
- 面向对象:人生是场修行,短的是旅行,长的是我们一起前行
- 2018 最具就业前景的 7 大编程语言,前三无悬念?
- 趣图:在我电脑好好的啊!
- 主要性能指标剖析图表
- 今日头条前端面经
- Javscript高级程序设计之-Chapter3总结
- JDK1.6安装(完结)
- 邻接表的c++实现 及 Dijkstra算法