Upgrade to Pro — share decks privately, control downloads, hide ads and more …

淘宝开放产品前端实践

d2forum
July 19, 2012
19k

 淘宝开放产品前端实践

通过淘宝两个开放项目“店铺开放装修”和“开放平台JS JDK”来介绍两种不同的开放模式,及开放过程中需要关注的问题,及在淘宝的实践经验。

d2forum

July 19, 2012
Tweet

Transcript

  1. 店铺开放JS iframe ADSafe Caja 保障安全程度高 3 4 5 JS书写限制少 5

    2 4 最终用户体验好 1 3 4 方便调试 5 4 2 性能损耗小 5 4 3 项目活跃度高 / 2 4 项目有应用产品 4 1 3
  2. 店铺开放JS 用户代码 var el = document.getEle mentById(“id”) ; 服务端 编译后代码

    moduleResult___ = IMPORTS___.w___('el', (x0___ = IMPORTS___.document_v___? IMPORTS___.document: ___.ri(IMPORTS___, 'document'), x0___.getElementById_m___? x0___.getElementById('id'): x0___.m___('getElementById', [ 'id' ]))); 编译 静态分析代码
  3. Caja.JS 动态拦截代码 店铺开放JS 编译后代码 moduleResult___ = IMPORTS___.w___('el', (x0___ = IMPORTS___.document_v___?

    IMPORTS___.document: ___.ri(IMPORTS___, 'document'), x0___.getElementById_m___? x0___.getElementById('id'): x0___.m___('getElementById', [ 'id' ]))); 服务端
  4. 2.1.2 开放的业务模型 1. 数据交互 4. 返回结果 客户端 2. 数据交互 3.

    返回结果 客户端 客 户 端 客 户 端 客户端 客 户 端 资源服务
  5. 2.2.2 Oauth2 授权模型 客户端 授权服务 资源服务 1. 授权申请 2. 访问许可

    3. 访问许可 4. 授权码 5. 签名和授权码 6. 受保护的资源 资源所有者
  6. 2.2.3 签名 客户端 资源服务 3. 时间戳&签名 授权码 API 参数 4.

    受保护的资源 客户端服务 1. 请求页面 2. 页面内容 时间戳&签名
  7. 2.2.4 免签名 客户端 资源服务 3. Ajax发送标识码和授权码 4. 受保护的资源 1. frame请求组件内容

    2. 静态内容和标识码 只有请求的组件为iframe时,这种简化的认证方式才能保证安全
  8. 2.3.2 API 集成授权 返 回 结 果 发 送 请

    求 调 用 正 常 返 回 异 常 信 息 否 已 授 权 附 加 授 权 信 息 是 授 权 异 常 调 用 授 权 完 成 授 权 是 是 否 否 否 是 添加授权码和签名
  9. 2.4.3 组件通讯  TOP.ev.add ( el, event, fn ); 

    TOP.ev.fire ( el, event, data ); TOP.ev postMessage html5PostMessage flashPostMessage
  10. 2.5.1 JS SDK 总体结构 UI辅劣功能 组件通讯 工具方法 lang,dom,event,io… TOP 监控

    开放的api ( TOP.api ) 登录授权 ( TOP.auth ) UI组件 ( TOP.ui ) 登录 购物车 ……