[ Node | koa2 ] 喜马拉雅JSSDK签名服务
[ node | koa2 ] 喜马拉雅JSSDK签名服务
Github项目
支持sdk版本: @xmly-fem/web-jssdk v1.1.1
服务端 Node 版本:v10.16.0
喜马拉雅web-jssdk相关文档
配置
在 config.js 中配置 app_secret (在喜马拉雅开发平台-管理中心-应用中心-网页应用中查看)
module.exports = {app_secret: ''
}
签名路由源码
router.post('/signature', async (ctx, next) => {let { params } = ctx.request.bodyparams = JSON.parse(params)let list = []// 按照 key 字典排序Object.keys(params).sort().forEach(key => {list.push([key, params[key]])})// 将排序后的参数键值对用&拼接,即拼接成key1=val1&key2=val2&...const search = new URLSearchParams(list).toString()console.log('[search]', search)// 将上一步得到的字符串进行 Base64 编码(注意 Base64 编码时要设置字符集为 utf8),假设 Base64 编码后的字符串为 base64EncodedStr;const base64 = Buffer.from(search, 'utf8').toString('base64')console.log('[base64]', base64)// 用 app_secret 作为 HMAC-SHA1 哈希 key(即sha1Key),使用 sha1Key 对base64EncodedStr 进行 HMAC-SHA1 哈希得到字节数组(注意是字节数组,不要转成十六进制字符串,否则签名计算会出错;一般的 HMAC-SHA1 算法得到的结果是字节数组的十六进制表示,请务必留意这里和一般情况不太一样)const hmac = crypto.createHmac('sha1', config.app_secret)hmac.update(base64)const sha1ResultBytes = hmac.digest()console.log('[sha1]', sha1ResultBytes)// 对上面得到的 sha1ResultBytes 进行 MD5 得到 32 位字符串,即为 sigconst md5 = crypto.createHash('md5')const signature = md5.update(sha1ResultBytes).digest('hex')console.log('[md5]', signature)ctx.body = { code: 0, message: '', signature }
})
本地开发
启动脚本
npm run dev
or yarn run dev
默认端口3111
网页端
添加 @xmly-fem/web-jssdk 依赖
import { config, XMLY } from '@xmly-fem/web-jssdk'config({app_key: '', // 必传,根据实际情况填写sig_url: '//localhost:3111/signature', // 必传device_id: 'dasffasddafs12345', // 必传timeout: 10 * 1000,debug: true
})const xmly = new XMLY()// 获取分类列表
xmly.getCategories().then(({ code, data }) => {if (code === 0) {console.log(data)}}).catch(error => {console.log(error)})
[ Node | koa2 ] 喜马拉雅JSSDK签名服务相关推荐
- Node Express微信公众号jssdk签名服务
开发公众号的过程中,会使用jssdk提供的微信公众号原生功能,使用过程中微信需要确认使用者身份,所以使用前需要现通过config接口注入权限验证配置,这时就需要用到签名服务,根据微信官方要求 对于不会 ...
- Node获取微信JSSDK签名测试号案例
案例用于本地测试开发,切勿用于线上产品. 配置本地服务器 NATAPP 权限签名 流程如下: 1. 访问网站 2. 请求服务端 3. 服务端获取access_token(需要进行缓存 ...
- 干撸一个Node环境的PDF生成服务
干撸一个Node环境的PDF生成服务 用到的库 介绍 代码片段 Http请求处理 生成PDF 样式展示 签名图片处理 PDF排版 结语 用到的库 express:Express 是一个保持最小规模的灵 ...
- 第三方 签名服务_在只有一部分交易方是签名方的情况下保存交易
第三方 签名服务 我花了一段时间才想到一个标题,该标题可以概述本帖子的内容,而不会成为完整的句子. 我想我已经选择了清晰易读的东西. 无论哪种方式,让我澄清一下我实际上在说什么. 我已经看到几个人在S ...
- java 微信jssdk签名_JAVA生成微信JSSDK接口签名
签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...
- node+koa2+mysql搭建博客后台
本文将详细讲解使用node+koa2+mysql搭建博客后台的全过程. 开发环境 node 8.3.0及以上 npm 5.3.0及以上 mysql 5.7.21 具体的环境配置可查看我的上一篇文章 准 ...
- 微信jssdk签名生成代码示例PHP版本
/*** 获取jssdk签名*/public function signature(Request $request){//随机字符串$str = time() . rand(111111,99999 ...
- 微信JS-SDK签名接口的使用与开发
最近诸事缠身好久没有写文章了.前不久将与微信公众号有关的一些知识点进行了梳理,微信公众号开发过程中,用最多的就是微信js-sdk了.但是使用微信js-sdk需要获取签名.时间戳.随机字符串,等等一系列 ...
- 从零学本体dApp开发(26):本体签名服务的API与Postman
原创 | 工匠 (来自本体社区的技术人员) --------------- 写在前面 最近在利用业余时间学习本体的开发.我打算把自己学习的过程记录下来,一方面便于自己梳理学到的东西,另一方面希望可以通 ...
- 微信JSSDK 签名错误invalid signature排查
微信jssdk 签名config:invalid signature排查 本文只涉及invalid signature 签名错误的排查过程.签名错误90%都是因为url造成的,按照如下步骤进行检查 ...
最新文章
- C语言约瑟夫报数出圈算法,c语言实现约瑟夫环问题
- 章节3.4----队列的实现与应用
- JS代码对表格进行新增时无法解析HTML代码的解决方式
- 学习笔记(4):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
- Python自学教程第2期-求100以内奇数和
- idea Translation插件翻译失败。TKK: 更新 TKK 失败,请检查网络连接
- VS2013新建项目出现脚本错误的解决办法
- python executescript_Python(SQLite)executescript用法(
- 一个low逼的boofuzz脚本生成器
- 汽车4G车载TBOX智能终端
- 苹果手机可以投影到墙上吗_怎么将手机上的投影到电视上或墙上?
- 高考数学辅导高考数学题型全归纳
- Lab1过程及心得体会
- “爆打”团队阿尔法发布 以及 第四周任务
- 手工检测SQL注入漏洞
- Mp4文件播放原理分析
- [cx32] jlink烧录脚本使用
- 安卓来电归属地_头条:富士康或将成为电动车界的安卓
- 【单片机毕业设计】【mcuclub-jj-052】基于单片机的电脑散热底座的设计
- winform c# 获取电脑配置信息和cpu 内存使用率