{"id":16012994,"url":"https://github.com/bootjp/echo_middleware_path_auth","last_synced_at":"2025-03-17T20:30:44.640Z","repository":{"id":62991323,"uuid":"563255544","full_name":"bootjp/echo_middleware_path_auth","owner":"bootjp","description":"middleware for path-based authentication of labstack echo.  Best when using apikey for path.","archived":false,"fork":false,"pushed_at":"2025-02-09T03:24:11.000Z","size":77,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T03:41:38.457Z","etag":null,"topics":["echo-framework","echo-middleware","golang-library"],"latest_commit_sha":null,"homepage":"","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/bootjp.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}},"created_at":"2022-11-08T08:28:45.000Z","updated_at":"2025-02-09T03:24:13.000Z","dependencies_parsed_at":"2024-03-03T07:24:04.471Z","dependency_job_id":"29f8a2dc-1278-4890-954d-c7147db187f5","html_url":"https://github.com/bootjp/echo_middleware_path_auth","commit_stats":{"total_commits":20,"total_committers":3,"mean_commits":6.666666666666667,"dds":0.35,"last_synced_commit":"b4b14cb1da6592e2fd3a24bf1f6118537615c1f3"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Fecho_middleware_path_auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Fecho_middleware_path_auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Fecho_middleware_path_auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootjp%2Fecho_middleware_path_auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bootjp","download_url":"https://codeload.github.com/bootjp/echo_middleware_path_auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243878483,"owners_count":20362433,"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":["echo-framework","echo-middleware","golang-library"],"created_at":"2024-10-08T14:23:15.577Z","updated_at":"2025-03-17T20:30:44.211Z","avatar_url":"https://github.com/bootjp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# echo_middleware_path_auth\n\nmiddleware for path-based authentication of labstack echo. Best when using apikey for path.\n\nexample) https://example.com/api/this_is_api_key\n\nThis `this_is_api_key` part can be dynamically submitted to authentication.\nFor example, whether apikey is active, RateLimit is not exceeded, etc.\n\n\nMuch of this code is based on [key_auth.go in labstack/echo and its test code](https://github.com/labstack/echo/blob/01d7d01bbc1948cd308b2ae93a131654e6dba195/middleware/key_auth.go).\n\n## Badges\n\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n[![Test](https://github.com/bootjp/echo_middleware_path_auth/actions/workflows/test.yml/badge.svg)](https://github.com/bootjp/echo_middleware_path_auth/actions/workflows/test.yml)\n\n\n## Usage/Examples\n\n```go\npackage main\n\nimport (\n\tpa \"github.com/bootjp/echo_middleware_path_auth\"\n\t\"github.com/labstack/echo/v4\"\n\t\"github.com/labstack/echo/v4/middleware\"\n)\n\nfunc main() {\n\n\te := echo.New()\n\t// group route\n\te.Group(\"/api/:apikey\", pa.PathAuth(\"apikey\", func(auth string, c echo.Context) (bool, error) {\n\t\t// add your logic\n\t\treturn true, nil\n\t}))\n\n\t// single route\n\tyourHttpHandler := func(c echo.Context) error { return c.String(200, \"OK\") }\n\tyourPathAuthLogic := func(auth string, c echo.Context) (bool, error) {\n\t\treturn true, nil\n\t}\n\n\te.GET(\"/api/:apikey\", yourHttpHandler, pa.PathAuth(\"apikey\", yourPathAuthLogic))\n\n\t// with config\n\tconfig := pa.PathAuthConfig{}\n\tconfig.Skipper = middleware.DefaultSkipper\n\tconfig.Param = \"apikey\"\n\tconfig.Validator = yourPathAuthLogic\n\te.GET(\"/api/:apikey\", yourHttpHandler, pa.PathAuthWithConfig(config))\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootjp%2Fecho_middleware_path_auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootjp%2Fecho_middleware_path_auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootjp%2Fecho_middleware_path_auth/lists"}