{"id":21878964,"url":"https://github.com/nitro/urlsign","last_synced_at":"2025-04-15T03:06:58.805Z","repository":{"id":57504934,"uuid":"104904992","full_name":"Nitro/urlsign","owner":"Nitro","description":"URL signing library for 3rd party URL validation","archived":false,"fork":false,"pushed_at":"2018-10-15T10:26:01.000Z","size":6,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-21T21:07:46.842Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/Nitro.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}},"created_at":"2017-09-26T15:42:33.000Z","updated_at":"2019-09-03T20:23:54.000Z","dependencies_parsed_at":"2022-09-19T10:00:52.984Z","dependency_job_id":null,"html_url":"https://github.com/Nitro/urlsign","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitro%2Furlsign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitro%2Furlsign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitro%2Furlsign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitro%2Furlsign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nitro","download_url":"https://codeload.github.com/Nitro/urlsign/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226881023,"owners_count":17696894,"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-11-28T08:14:15.552Z","updated_at":"2024-11-28T08:14:16.244Z","avatar_url":"https://github.com/Nitro.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"urlsign\n=======\n\n[![godoc here](https://img.shields.io/badge/godoc-here-blue.svg)](http://godoc.org/github.com/Nitro/urlsign)\n\nPackage urlsign contains a signed URL mechanism, where a URL can safely be\npassed through a third party and validated before being served. \n\nThe Problem This Solves\n-----------------------\n\nIf you have one service that generates a URL which is then passed to a browser,\nand the browser then uses that URL to access the resource from another service,\nyou need a way to identify that this is a valid request. One method for doing that\nis to provide a URL that contains a token representing an HMAC over the content of\nthe URL. This library implements that.\n\nHow it Works\n------------\n\nurlsign generates a signing token for each URL based on all the other query\nparameters and the path. This can then be included as the `token` parameter\nappended to any signed URL.  Using this token, the authenticity of the request\ncan be validated.\n\nTokens have a validity window much like that of TOTP 2-factor auth systems.\nThe library will validate a token from the current window, the previous window,\nand a future window. Since browsers use query parameters in caching\ndetermination, this token window will also affect the expiration of the cached\nresource in the browser.\n\nThis does not validate the hostname or scheme from the passed URL.\nExpiration/bucket size is an external, agreed parameter between the services.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitro%2Furlsign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitro%2Furlsign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitro%2Furlsign/lists"}