[ 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签名服务相关推荐

  1. Node Express微信公众号jssdk签名服务

    开发公众号的过程中,会使用jssdk提供的微信公众号原生功能,使用过程中微信需要确认使用者身份,所以使用前需要现通过config接口注入权限验证配置,这时就需要用到签名服务,根据微信官方要求 对于不会 ...

  2. Node获取微信JSSDK签名测试号案例

    案例用于本地测试开发,切勿用于线上产品. 配置本地服务器 NATAPP 权限签名 流程如下: 1.    访问网站 2.    请求服务端 3.    服务端获取access_token(需要进行缓存 ...

  3. 干撸一个Node环境的PDF生成服务

    干撸一个Node环境的PDF生成服务 用到的库 介绍 代码片段 Http请求处理 生成PDF 样式展示 签名图片处理 PDF排版 结语 用到的库 express:Express 是一个保持最小规模的灵 ...

  4. 第三方 签名服务_在只有一部分交易方是签名方的情况下保存交易

    第三方 签名服务 我花了一段时间才想到一个标题,该标题可以概述本帖子的内容,而不会成为完整的句子. 我想我已经选择了清晰易读的东西. 无论哪种方式,让我澄清一下我实际上在说什么. 我已经看到几个人在S ...

  5. java 微信jssdk签名_JAVA生成微信JSSDK接口签名

    签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...

  6. node+koa2+mysql搭建博客后台

    本文将详细讲解使用node+koa2+mysql搭建博客后台的全过程. 开发环境 node 8.3.0及以上 npm 5.3.0及以上 mysql 5.7.21 具体的环境配置可查看我的上一篇文章 准 ...

  7. 微信jssdk签名生成代码示例PHP版本

    /*** 获取jssdk签名*/public function signature(Request $request){//随机字符串$str = time() . rand(111111,99999 ...

  8. 微信JS-SDK签名接口的使用与开发

    最近诸事缠身好久没有写文章了.前不久将与微信公众号有关的一些知识点进行了梳理,微信公众号开发过程中,用最多的就是微信js-sdk了.但是使用微信js-sdk需要获取签名.时间戳.随机字符串,等等一系列 ...

  9. 从零学本体dApp开发(26):本体签名服务的API与Postman

    原创 | 工匠 (来自本体社区的技术人员) --------------- 写在前面 最近在利用业余时间学习本体的开发.我打算把自己学习的过程记录下来,一方面便于自己梳理学到的东西,另一方面希望可以通 ...

  10. 微信JSSDK 签名错误invalid signature排查

    微信jssdk 签名config:invalid signature排查 ​ 本文只涉及invalid signature 签名错误的排查过程.签名错误90%都是因为url造成的,按照如下步骤进行检查 ...

最新文章

  1. C语言约瑟夫报数出圈算法,c语言实现约瑟夫环问题
  2. 章节3.4----队列的实现与应用
  3. JS代码对表格进行新增时无法解析HTML代码的解决方式
  4. 学习笔记(4):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
  5. Python自学教程第2期-求100以内奇数和
  6. idea Translation插件翻译失败。TKK: 更新 TKK 失败,请检查网络连接
  7. VS2013新建项目出现脚本错误的解决办法
  8. python executescript_Python(SQLite)executescript用法(
  9. 一个low逼的boofuzz脚本生成器
  10. 汽车4G车载TBOX智能终端
  11. 苹果手机可以投影到墙上吗_怎么将手机上的投影到电视上或墙上?
  12. 高考数学辅导高考数学题型全归纳
  13. Lab1过程及心得体会
  14. “爆打”团队阿尔法发布 以及 第四周任务
  15. 手工检测SQL注入漏洞
  16. Mp4文件播放原理分析
  17. [cx32] jlink烧录脚本使用
  18. 安卓来电归属地_头条:富士康或将成为电动车界的安卓
  19. 【单片机毕业设计】【mcuclub-jj-052】基于单片机的电脑散热底座的设计
  20. winform c# 获取电脑配置信息和cpu 内存使用率

热门文章

  1. hdu 2502月之数
  2. 推荐系统 - 多目标模型融合部分
  3. Linux(四):什么是Bash、什么是shell?
  4. 遇到PX Deq: reap credit等待事件
  5. 鲲鹏920是计算机CPU吗,华为鲲鹏920
  6. 功率 dbm vrms vpp mw换算 (正弦波)
  7. EasyWeChat生成小程序码
  8. Puppet erb模板介绍(三十二)
  9. 工作室多拨宽带如何优化?
  10. java计算税率例子