{"id":21638022,"url":"https://github.com/airdwing/node-airx-webapp","last_synced_at":"2025-10-04T17:47:41.631Z","repository":{"id":87694211,"uuid":"94970552","full_name":"AirDwing/node-airx-webapp","owner":"AirDwing","description":"一个基于AirX OpenAPI \u0026 SDK的前后端分离演示应用","archived":false,"fork":false,"pushed_at":"2017-09-27T12:14:01.000Z","size":55,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-05T06:52:54.334Z","etag":null,"topics":["airx","demo","example","trial"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AirDwing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-06-21T06:26:47.000Z","updated_at":"2020-12-26T08:05:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"96f0061f-16dc-4d89-ab9f-40ed2a56729b","html_url":"https://github.com/AirDwing/node-airx-webapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AirDwing/node-airx-webapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AirDwing%2Fnode-airx-webapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AirDwing%2Fnode-airx-webapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AirDwing%2Fnode-airx-webapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AirDwing%2Fnode-airx-webapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AirDwing","download_url":"https://codeload.github.com/AirDwing/node-airx-webapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AirDwing%2Fnode-airx-webapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278350884,"owners_count":25972672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airx","demo","example","trial"],"created_at":"2024-11-25T04:07:56.166Z","updated_at":"2025-10-04T17:47:41.596Z","avatar_url":"https://github.com/AirDwing.png","language":"JavaScript","readme":"# node-airx-webapp\n\n一个基于AirX OpenAPI \u0026amp; SDK的演示应用\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [说明](#%E8%AF%B4%E6%98%8E)\n- [前端请求参数](#%E5%89%8D%E7%AB%AF%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0)\n  - [签名相关参数](#%E7%AD%BE%E5%90%8D%E7%9B%B8%E5%85%B3%E5%8F%82%E6%95%B0)\n  - [登录Auth Token](#%E7%99%BB%E5%BD%95auth-token)\n  - [登录设备相关参数](#%E7%99%BB%E5%BD%95%E8%AE%BE%E5%A4%87%E7%9B%B8%E5%85%B3%E5%8F%82%E6%95%B0)\n- [项目目录结构](#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84)\n- [运行](#%E8%BF%90%E8%A1%8C)\n- [LICENSE](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## 说明\n\n该项目只采用了前后端分离的设计理念.\n\n后端接口采用`@airx/sdk`来完成`AirX Open API`的反向代理.\n\n\n## 前端请求参数\n\n### 签名相关参数\n\n签名相关参数不用通过前端传递,防止AK/SK的泄露,签名交给`Node.js`后端反代应用程序处理,所以以下几个签名相关参数不用传递:\n\n- Nonce\n- SecretId\n- Signature\n- SignatureMethod\n- Timestamp\n\n### 登录Auth Token\n\n由于反代应用程序支持 Cookie Session, 所以前端不用存储 Auth Token,也免去了 Auth Token被截获的风险.所以如果接口需要以下参数,不用传递:\n\n- auth\n\n### 登录设备相关参数\n\n每个会话都会生成一个随机唯一的模拟登录设备id, 如果接口需要以下参数, 不用传递:\n\n- guid\n- device\n\n## 项目目录结构\n\n- server/ 服务器后端源码目录\n- app/ 前端应用源码目录\n- dist/ 前端应用通过`webpack`等工具进行打包压缩, 将静态文件存放的目录\n\n建议的 `dist` 目录结构\n\n- index.html\n- 404.html 和 403,500... 等其他相关错误的html\n- static/ 文件目录,或分类目录存放 css/js/图片等静态资源\n\n## 运行\n\n服务器参考配置位于 `server/config/_sample.js`, 本地开发需要新建一个 `_development.js`\n\n调试运行后端应用:\n\n```bash\nDEBUG=@airx/sdk node server/index.js\n```\n\n默认端口为`3456`,可以自行修改.\n\n## LICENSE\n\nApache 2.0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairdwing%2Fnode-airx-webapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairdwing%2Fnode-airx-webapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairdwing%2Fnode-airx-webapp/lists"}