{"id":13754513,"url":"https://github.com/TritonDataCenter/node-http-signature","last_synced_at":"2025-05-10T00:30:59.909Z","repository":{"id":46049371,"uuid":"2048781","full_name":"TritonDataCenter/node-http-signature","owner":"TritonDataCenter","description":"Reference implementation of Joyent's HTTP Signature Scheme","archived":false,"fork":false,"pushed_at":"2023-11-16T18:34:24.000Z","size":210,"stargazers_count":405,"open_issues_count":34,"forks_count":119,"subscribers_count":58,"default_branch":"master","last_synced_at":"2025-04-24T18:02:28.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tritondatacenter.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TritonDataCenter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","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}},"created_at":"2011-07-14T17:58:00.000Z","updated_at":"2024-12-06T16:57:36.000Z","dependencies_parsed_at":"2024-01-13T02:46:39.534Z","dependency_job_id":null,"html_url":"https://github.com/TritonDataCenter/node-http-signature","commit_stats":{"total_commits":99,"total_committers":34,"mean_commits":2.911764705882353,"dds":0.7878787878787878,"last_synced_commit":"391fbe4864c2daef0c04345c987e5aa4d44c3ba1"},"previous_names":["joyent/node-http-signature"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fnode-http-signature","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fnode-http-signature/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fnode-http-signature/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonDataCenter%2Fnode-http-signature/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TritonDataCenter","download_url":"https://codeload.github.com/TritonDataCenter/node-http-signature/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252843018,"owners_count":21812786,"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","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":[],"created_at":"2024-08-03T10:00:26.233Z","updated_at":"2025-05-10T00:30:59.567Z","avatar_url":"https://github.com/TritonDataCenter.png","language":"JavaScript","readme":"# node-http-signature\n\nnode-http-signature is a node.js library that has client and server components\nfor Joyent's [HTTP Signature Scheme](http_signing.md).\n\n## Usage\n\nNote the example below signs a request with the same key/cert used to start an\nHTTP server. This is almost certainly not what you actually want, but is just\nused to illustrate the API calls; you will need to provide your own key\nmanagement in addition to this library.\n\n### Client\n\n```js\nvar fs = require('fs');\nvar https = require('https');\nvar httpSignature = require('http-signature');\n\nvar key = fs.readFileSync('./key.pem', 'ascii');\n\nvar options = {\n  host: 'localhost',\n  port: 8443,\n  path: '/',\n  method: 'GET',\n  headers: {}\n};\n\n// Adds a 'Date' header in, signs it, and adds the\n// 'Authorization' header in.\nvar req = https.request(options, function(res) {\n  console.log(res.statusCode);\n});\n\n\nhttpSignature.sign(req, {\n  key: key,\n  keyId: './cert.pem',\n  keyPassphrase: 'secret' // (optional)\n});\n\nreq.end();\n```\n\n### Server\n\n```js\nvar fs = require('fs');\nvar https = require('https');\nvar httpSignature = require('http-signature');\n\nvar options = {\n  key: fs.readFileSync('./key.pem'),\n  cert: fs.readFileSync('./cert.pem')\n};\n\nhttps.createServer(options, function (req, res) {\n  var rc = 200;\n  var parsed = httpSignature.parseRequest(req);\n  var pub = fs.readFileSync(parsed.keyId, 'ascii');\n  if (!httpSignature.verifySignature(parsed, pub))\n    rc = 401;\n\n  res.writeHead(rc);\n  res.end();\n}).listen(8443);\n```\n\n## Installation\n\n    npm install http-signature\n\n## License\n\nMIT.\n\n## Bugs\n\nSee \u003chttps://github.com/joyent/node-http-signature/issues\u003e.\n","funding_links":[],"categories":["1. 后端开发"],"sub_categories":["1.1 HTTP"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTritonDataCenter%2Fnode-http-signature","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTritonDataCenter%2Fnode-http-signature","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTritonDataCenter%2Fnode-http-signature/lists"}