{"id":17637904,"url":"https://github.com/liangjfblue/doublejwt","last_synced_at":"2025-06-18T18:36:40.737Z","repository":{"id":132708735,"uuid":"204933184","full_name":"liangjfblue/doubleJWT","owner":"liangjfblue","description":"app Password-free login by use double token. one short time and another is long time. use long time token to refresh expire time short token","archived":false,"fork":false,"pushed_at":"2019-08-28T13:05:45.000Z","size":23,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-06T17:52:05.045Z","etag":null,"topics":["gin","golang","refreshtoken","restfull-api"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/liangjfblue.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-28T13:02:33.000Z","updated_at":"2022-08-12T02:25:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"bda93bac-4c35-4ff5-b726-b13b6893fbc0","html_url":"https://github.com/liangjfblue/doubleJWT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/liangjfblue/doubleJWT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liangjfblue%2FdoubleJWT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liangjfblue%2FdoubleJWT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liangjfblue%2FdoubleJWT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liangjfblue%2FdoubleJWT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liangjfblue","download_url":"https://codeload.github.com/liangjfblue/doubleJWT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liangjfblue%2FdoubleJWT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260610557,"owners_count":23036148,"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":["gin","golang","refreshtoken","restfull-api"],"created_at":"2024-10-23T03:06:53.372Z","updated_at":"2025-06-18T18:36:35.720Z","avatar_url":"https://github.com/liangjfblue.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## token刷新方案\n登录后服务端返回两个token（请求资源token，刷新token。前者时间短，比如1天，后者时间长，7天）。\n资源token 用于资源接口请求，刷新token 用于请求刷新token。实现首次登录后免登，和token刷新机制。\n\n## token命名方式\n- token（用于一般的资源请求）\n- refreshToken（用于请求刷新token，返回两个新的token（短和长））\n\n## 项目介绍\n本项目是使用 go mod 方式，因此需要设置好对应的环境变量和代理。设置好后，在项目根目录直接 go build 。\n\n## 测试步骤：\n- 0、配置好自己的ip，port和mysql等参数（config.yaml）\n- 1、创建数据库和建表（使用create.sql脚本。在于script目录）\n- 2、测试时修改config.yaml的两个时间（shortTime 和 longTime），比如短的10s，长的30s。\n- 3、调用 register 接口注册账号\n- 4、调用 login 接口登录\n- 5、根据 login 得到的 token ，调用 comment 接口评论\n- 6、等待 shortTime 后，token失效，使用 refreshtoken 接口再次得到 token 和 refreshToken 。\n- 7、若 refreshToken过期失效，再次调用login 接口登录得到 token 和 refreshToken 。\n\n## 调用逻辑\n### 注册账号 \n[POST] ```http://172.16.0.66:8099/v1/user/register```\n\n请求：\n\n    {\n        \"username\":\"laingjf\",\n        \"password\":\"123456\"\n    }\n\n返回：\n\n    {\n        \"code\": 1,\n        \"message\": \"OK\",\n        \"data\": {\n            \"uuid\": \"5e4eb0f2453343e98919b930d8fcee52\"\n        }\n    }\n\n### 登录\n[POST] ```http://172.16.0.66:8099/v1/user/login```\n\n请求：\n\n    {\n        \"username\":\"laingjf\",\n        \"password\":\"123456\"\n    }\n\n返回：\n\n    {\n        \"code\": 1,\n        \"message\": \"OK\",\n        \"data\": {\n            \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjY5NzA5NDcsImlhdCI6MTU2Njk3MDkyNywiaWQiOjEsIm5iZiI6MTU2Njk3MDkyNywidXNlcm5hbWUiOiJsYWluZ2pmIn0.pB5-TERuhSLogg-kdarK5J29LedfZJutaWi9IxeECs0\",\n            \"refreshToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjY5NzA5ODcsImlhdCI6MTU2Njk3MDkyNywiaWQiOjEsIm5iZiI6MTU2Njk3MDkyNywidXNlcm5hbWUiOiJsYWluZ2pmIn0.YkMm-a5Krp9b4Hsgxpod0y7KrLGMJJPlqkj83SKefmQ\"\n        }\n    }\n\n### 评论服务\n[POST] ```http://172.16.0.66:8099/v1/service/comment```\n\n```headers Authorization ：Bearer token```\n\n请求：\n\n    {\n        \"topic_id\":10,\n        \"topic_type\":\"sport\",\n        \"content\":\"我来评论了，你好帅啊\",\n        \"from_uid\":1\n    }\n\n返回：\n\n    {\n        \"code\": 1,\n        \"message\": \"OK\",\n        \"data\": null\n    }\n\n### 刷新过期token \n[POST] ```http://172.16.0.66:8099/v1/base/refreshtoken```\n\n```headers Authorization ：Bearer refreshToken```\n\n请求：\n\n    {\n        \"code\": 1,\n        \"message\": \"OK\",\n        \"data\": {\n            \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjY5NzA5NDcsImlhdCI6MTU2Njk3MDkyNywiaWQiOjEsIm5iZiI6MTU2Njk3MDkyNywidXNlcm5hbWUiOiJsYWluZ2pmIn0.pB5-TERuhSLogg-kdarK5J29LedfZJutaWi9IxeECs0\",\n            \"refreshToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NjY5NzA5ODcsImlhdCI6MTU2Njk3MDkyNywiaWQiOjEsIm5iZiI6MTU2Njk3MDkyNywidXNlcm5hbWUiOiJsYWluZ2pmIn0.YkMm-a5Krp9b4Hsgxpod0y7KrLGMJJPlqkj83SKefmQ\"\n        }\n    }\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliangjfblue%2Fdoublejwt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliangjfblue%2Fdoublejwt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliangjfblue%2Fdoublejwt/lists"}