{"id":15097682,"url":"https://github.com/ethanzu1193/koa-ts-jwt-auth","last_synced_at":"2026-01-07T10:03:13.275Z","repository":{"id":199862103,"uuid":"703297331","full_name":"ethanzu1193/koa-ts-jwt-auth","owner":"ethanzu1193","description":"基于 Koa 和 TypeScript 构建，提供了一个用于 API 接口服务的示例。示例包含JWT（JSON Web Tokens）进行身份验证和授权。","archived":false,"fork":false,"pushed_at":"2023-10-25T06:27:19.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T16:19:56.322Z","etag":null,"topics":["jwt","koa","mysql","nodejs","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethanzu1193.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-11T01:34:57.000Z","updated_at":"2023-10-26T03:02:48.000Z","dependencies_parsed_at":"2023-10-23T09:49:53.303Z","dependency_job_id":null,"html_url":"https://github.com/ethanzu1193/koa-ts-jwt-auth","commit_stats":null,"previous_names":["ethanzu1193/koa-ts-jwt-auth"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ethanzu1193/koa-ts-jwt-auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanzu1193%2Fkoa-ts-jwt-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanzu1193%2Fkoa-ts-jwt-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanzu1193%2Fkoa-ts-jwt-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanzu1193%2Fkoa-ts-jwt-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethanzu1193","download_url":"https://codeload.github.com/ethanzu1193/koa-ts-jwt-auth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanzu1193%2Fkoa-ts-jwt-auth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28234547,"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":"2026-01-07T02:00:05.975Z","response_time":58,"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":["jwt","koa","mysql","nodejs","typeorm","typescript"],"created_at":"2024-09-25T16:24:49.706Z","updated_at":"2026-01-07T10:03:13.256Z","avatar_url":"https://github.com/ethanzu1193.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KOA-TS-JWT-AUTH\n\n## 描述\n\n这个项目基于 Koa 和 TypeScript 构建，提供了一个用于 API 接口服务的示例。\n它包括了使用 TypeORM 进行 MySQL 数据库操作以及 JWT（JSON Web Tokens）进行身份验证和授权。\n\n主要功能包括用户注册、用户登录，以及通过 JWT Token 进行授权验证。这个项目是一个示例，可用于学习如何构建基于 Koa 和 TypeScript 的 API 服务。\n如果您有任何问题或需要进一步的帮助，请随时联系我。\n\n## 数据库\n\n### 数据库配置\n\n为了正常运行该项目，您需要执行以下数据库配置步骤：\n\n1. **创建数据库**：首先，您需要手动创建一个 MySQL 数据库。您可以使用您喜欢的 MySQL 客户端工具或者使用以下命令行操作：\n\n   ```mysql\n   CREATE DATABASE koa_ts;\n   ```\n\n   这将创建一个名为 `koa_ts` 的数据库。\n\n2. **导入数据库表结构**：在项目的 `db` 目录中，您可以找到一个名为 `koa-ts.sql` 的 SQL 脚本文件。请使用您的 MySQL 客户端工具或者命令行来导入这个脚本到您创建的数据库：\n\n   ```shell\n   mysql -u your_username -p koa_ts \u003c koa-ts.sql\n   ```\n\n   请将 `your_username` 替换为您的 MySQL 用户名，然后您将被要求输入密码。\n\n### 配置文件\n\n数据库相关的配置信息需要在项目的 `.env` 文件中进行配置。打开 `.env` 文件并填写以下信息：\n\n```\nMYSQL_HOST=your_mysql_host\nMYSQL_PORT=your_mysql_port\nMYSQL_USERNAME=your_mysql_username\nMYSQL_PASSWORD=your_mysql_password\nMYSQL_DATABASE=koa_ts\n```\n\n确保将 `your_mysql_host`、`your_mysql_port`、`your_mysql_username` 和 `your_mysql_password` 替换为您的 MySQL 服务器的主机地址、端口、用户名和密码。如果您使用了不同的数据库名称，请相应地修改 `MYSQL_DATABASE` 的值。\n\n### 数据库连接\n\n项目将使用配置文件中的信息来连接到您的 MySQL 数据库以进行数据操作。\n\n## 运行\n\n```shell\n#初始化\nyarn\n#运行\nyarn dev\n```\n\n运行后程序默认访问地址为 http://localhost:3005\n\n## 接口\n\n这个项目包含了以下 3 个接口：\n\n### 用户注册\n\n- **URL**: `http://localhost:3005/user/register`\n\n- **请求方式**: POST\n\n- 请求参数 (通过 Request Body 传递):\n\n  ```json\n  {\n      \"nickName\": \"foobar\",\n      \"password\": \"password\",\n      \"confirmPassword\": \"password\"\n  }\n  ```\n\n- 响应\n\n  ```\n  {\n      \"msg\": \"注册成功\",\n      \"errorCode\": 1,\n      \"code\": 200\n  }\n  ```\n\n### 用户登录\n\n- **URL**: `http://localhost:3005/auth/login`\n\n- **请求方式**: POST\n\n- 请求参数 (通过 Request Body 传递):\n\n  ```json\n  {\n      \"nickName\": \"foobar\",\n      \"password\": \"password\"\n  }\n  ```\n\n- 响应\n\n  ```json\n  {\n      \"msg\": \"登录成功\",\n      \"errorCode\": 1,\n      \"code\": 200,\n      \"data\": {\n          \"nickName\": \"111111\",\n          \"userId\": \"51c85a7f-3ece-4e0c-9b13-6e3bae5dcfca\",\n          \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n      }\n  }\n  ```\n\n### 获取用户信息\n\n此接口要求用户在登录后将令牌（token）放置在请求头信息中，才有 Bearer Toekn的类型：\n\n- **Header Key**: Authorization\n- **Header Value**: Bearer 您获取到的令牌值\n\n请确保在请求该接口前，已经通过登录接口获取了有效的令牌，并将其包含在请求头中。\n\n- **URL**: `http://localhost:3005/user/getUserInfo`\n\n- **请求方式**: POST\n\n- 请求参数 (通过 Request Body 传递):\n\n  ```json\n  {\n      \"userId\": \"51c85a7f-3ece-4e0c-9b13-6e3bae5dcfca\"\n  }\n  ```\n\n- 响应\n\n  ```json\n  {\n      \"msg\": \"success\",\n      \"errorCode\": 1,\n      \"code\": 200,\n      \"data\": {\n          \"nickName\": \"111111\",\n          \"userId\": \"51c85a7f-3ece-4e0c-9b13-6e3bae5dcfca\"\n      }\n  }\n  ```\n\n这些接口提供了用户注册、登录以及获取用户信息的功能。如果您有任何疑问或需要更多细节，请随时联系我们。\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanzu1193%2Fkoa-ts-jwt-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethanzu1193%2Fkoa-ts-jwt-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanzu1193%2Fkoa-ts-jwt-auth/lists"}