JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 27
  • Score
    100M100P100Q66325F
  • License MIT

youloge.com website dedicated library

Package Exports

  • youloge.plus

Readme

Youloge.Plus 开放扩展服务 ⚡ 当前处于非正式版 🚧

  • 前端开放服务,可以快速集成人机验证,登录注册,转账支付,视频点播 服务。
  • 先到 任意开发者管理后台-apikey 获取一对加解密密钥对(apikey/secret)。
  • 项目开源,欢迎提交PR,或者提交Issue。

💡 ⚡️ 🛠️ 📦 🔩 🔑 - 接口来源-开放API文档

  • 建议直接引入CDN 即可使用 3.45 kB │ gzip: 1.61 kB
  • 一、CDN安装 https://unpkg.com/youloge.plus或者https://cdn.jsdelivr.net/npm/youloge.plus
  • 模块安装 npm install youloge.plus 或者 yarn add youloge.plus
  • 主动调用 youloge.plus().METHOD(config)方法,通过.then.catch接收回调,还可添加.emit 监听变化
  • 二、ES6 模块 import YouPlus from 'youloge.plus'
  • 主动调用 YouPlus().METHOD(config)方法,通过.then.catch接收回调,还可添加.emit 监听变化

更新日志

  • 2.1.6 [20260106] 去除HEAD检测请求
  • 2.1.2 [20250910] 规范方法名称CDN引入为 youloge.plus ES6引入为 YouPlus
  • 2.0.0 [20250330] 优化窗口加载逻辑,增加video 视频播放器服务
  • 1.9.1 添加utils辅助函数,统一事件
  • 1.2.0 优化监听事件,增加窗口新建销毁处理逻辑
  • 1.0.8 引入notify 参数:直接对接开发者接口
  • 1.0.7 修复弹窗fiexd 样式问题
  • 1.0.6 修复selector设置错误情况下走弹窗式遮罩层不会关闭问题
  • 1.0.5 统一风格apikey 初始化 + selector 支持内嵌式渲染
  • 0.0.9 前置服务captcha人机验证,归入到匿名账户体系
  • 0.0.2 增加login单点登录服务(邮箱匿名代理)
  • 0.0.1 初始化项目 构建逻辑 统一模块

开始使用 & 初始化

const usePlus = YouPlus({
  // 可选配置项 优先自动从 sessionStorage.youloge.APIKEY 中获取
  APIKEY?:string, // 必填*用于加密数据区分开发者 
});

弹窗式 | 内嵌式 & 可关闭 & 样式配置

// METHOD => 取值参考下文
usePlus.METHOD({
  // 只取查询到的第一个`Element`
  "selector":'HTMLElement #id .class null' // 可选* 如果未填写则为`全屏弹窗式`遮罩层
  "close":Bloom, // 可选* 是否允许模态框关闭,默认true,关闭后只能右上角关闭
  "styled":{ "dialog":"","iframe":"" },// 可选* 样式配置
  // 不同服务的参数不同,具体参考下文
  ...other params // 其他配置参数
}).emit(data=>{
  // 监听事件(流程尚未结束)(可选项) * 在`then catch`之前添加监听
}).then(res=>{
  // 处理成功(流程结束)
}).catch(err=>{
  // 处理失败(流程结束)
});

人机验证服务 METHOD=useCaptcha

验证客户端环境是否正常:用于登录邮件,支付邮件,发表评论等数据交互的前置条件

  • 人机验证通过时有method params参数时候,可以进行内部vip接口调用
  • captcha.signature 有效期为300秒,请及时验证并消费。

关于匿名用户的生成方式还可以使用开发者singer代替,如果你自己实现人机验证的话

usePlus.useCaptcha({
  "uuid":"", // 可选* 优先寻找该`Profile.UUID`本地账户
  "method":"captcha/verify", // 可选* 下一跳 VIP接口地址
  "params":{}, // 可选* 下一跳 VIP接口参数
  "verify":false, // 可选* 人机验证后(或下一跳调用VIP接口后),前端是否同步调用开发者`notify接口验证`
})
// 在调用`VIP接口`时,调用人身份为:`开发者`

身份认证 METHOD=useAuthorize

验证账户身份正确:用于用户登录,修改账户,支付转账,商品购买,订阅资源等敏感操作

  • 强烈建议开启同步验证 verify参数,开发者控制 消费下一跳
  • verifytrue时,返回expire signrnatrue并同步通知开发者authorize/verify接口,开发者决定是否消费
  • (默认)verifyfalse时,内网直接进行下一跳,返回下一跳直接消费数据,返回VIP接口返回数据
usePlus.useAuthorize({
  "uuid":"", // 可选* 优先指定该`Profile.UUID`账户(本地);本地无账户,会自动拉起登录窗口
  "desc":"", // 可选* 描述信息
  "method":"", // 可选* 下一跳 VIP接口地址
  "params":{}, // 可选* 下一跳 VIP接口参数
  "verify":false,
})
// 在调用`VIP接口`时,调用人身份为`已登录账户`

用户登录 METHOD=useLogin

支持第三方快捷登录,这是对人机验证 captcha的二次封装,简化了授权流程

  • 客户端登录后本地会存储登录信息(包括第三方授权登录),下次可快捷登录;
  • 快捷登录条件:用户登陆过一次且登录所使用的apikey与调用者apikey相同。
usePlus.useLogin({
  "uuid":"" "*", // 优先指定该`Profile.UUID`账户(本地)
  "mail":String "*", // 优先指定`Profile.mail`邮箱(快速填写功能)
  "verify":false, // 可选* 同步验证 同步通知开发者`login/verify`接口,开发者决定是否消费
})

收银台付款服务 METHOD=usePayment

这是对身份认证 authorize的二次封装,简化了授权流程

  • 平台货币为:#1.00RGB ≈ ¥1.0001CNY ≈ $0.1372USD 灵感来源于css颜色数值;
  • 任意用户付款给开发者:非点对点收款
  • 支付人和当前登录用户是没有关系的,当前用户可能使用其他账户支付
  • 只有local支付订单号,是你确认支付唯一的凭证
  • 详细支付流水 在后台apikey下可查看时间,来源,IPV4
  • 点对点收款 即指定用户付款直接用户登录状态下:调用支付API即可。
  • 开发者收款经过>T+3 +7 +15按比例提现 > 0.6% 0.8% 3% 5%(配合平台做纳税,实名认证)
usePlus.usePayment({
  "uuid":"" "*", // 优先指定该`Profile.UUID`账户(本地)
  "local":String "*", // 本地订单号 支付成功原样返回
  "money":Number "*", // 整数金额 100 => #1.00RGB
  "verify":false, // 可选* 同步验证 同步通知开发者`payment/verify`接口,开发者决定是否消费
}).then(res=>{ 
  // 成功(消费成功结果或验证同步通知结果)
})

视频点播服务 METHOD=useVideo

视频点播服务,也可以播放其他来源视频 支持flv,m3u8,dashmp4格式

  • 优先处理video.uuid的视频点播。
  • 再依次读取 mp4 > m3u8 > dash > flv
  • 长视频(>60秒)的视频,播放器可能会插入贴片广告(可跳过)
  • 开发者务必使用正确的apikey,否则无法产生的广告收益无法结算(优先保证视频播放)
  • 广告收收益 结算至主账户名下,可在开发者后台console下查看
usePlus.useVideo({
  "uuid":"" "*", // 优先使用改值该`video.UUID` 视频ID
  "flv":String "*", // 第三方资源
  "mp4":String "*", // 第三方资源
  "m3u8":String "*", // 第三方资源
  "dash":String "*", // 第三方资源
}).then(res=>{ 
  // 成功(消费成功结果或验证同步通知结果)
})

关于数据校验解密

apikey - 暴漏给前端,用于调用各种开发服务

secret - 专门用于后端AES-256-CBC * 2解密(固定IP服务端解密使用不要暴漏)

signature 后端通过解密signature可以获取JSON字符串格式数据

  • 解密参考 算法使用AES-256-CBC * 2
  • signature 前16字节为 iv
  • secret 00-32字节为 key_one
  • secret 16-64字节为 key_two
public function signature_decrypt($signature,$secret='')
{
  $key = base64_decode($secret);
  $bin = base64_decode($signature);$iv = substr($bin,0,16);$str = substr($bin,16);
  $one = openssl_decrypt($str,'AES-256-CBC',substr($key,0,32),1,$iv);
  $two = openssl_decrypt($one,'AES-256-CBC',substr($key,32,64),1,$iv);
  return json_decode($two,true);
  // JSON参数根据不同的方法解出来数据不同
}

但行好事 莫问前程