{"id":14155622,"url":"https://github.com/TomDoesTech/auth-api-tutorial","last_synced_at":"2025-08-06T01:31:57.495Z","repository":{"id":37267882,"uuid":"442936622","full_name":"TomDoesTech/auth-api-tutorial","owner":"TomDoesTech","description":null,"archived":false,"fork":false,"pushed_at":"2022-07-20T15:41:56.000Z","size":70,"stargazers_count":96,"open_issues_count":0,"forks_count":45,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-06T04:23:41.940Z","etag":null,"topics":["authentication","mongoose","nodejs","typegoose","typescript","zod"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=qylGaki0JhY","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/TomDoesTech.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}},"created_at":"2021-12-30T01:45:32.000Z","updated_at":"2024-11-25T14:56:51.000Z","dependencies_parsed_at":"2022-07-12T05:01:04.647Z","dependency_job_id":null,"html_url":"https://github.com/TomDoesTech/auth-api-tutorial","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/TomDoesTech%2Fauth-api-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomDoesTech%2Fauth-api-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomDoesTech%2Fauth-api-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomDoesTech%2Fauth-api-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomDoesTech","download_url":"https://codeload.github.com/TomDoesTech/auth-api-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228821408,"owners_count":17977167,"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":["authentication","mongoose","nodejs","typegoose","typescript","zod"],"created_at":"2024-08-17T08:04:29.982Z","updated_at":"2024-12-09T02:31:29.254Z","avatar_url":"https://github.com/TomDoesTech.png","language":"TypeScript","funding_links":[],"categories":["typescript"],"sub_categories":[],"readme":"# Authentication REST API with Node.js, TypeScript, Typegoose \u0026 Zod\n\n## Features\n1. Register a user\n2. Verify user's email address\n3. Send forgot password email\n4. Reset password\n5. Get current user\n6. Login\n7. Access token\n8. Refresh tokens\n\n## What technology are we using?\n- [TypeScript](https://www.typescriptlang.org/) - Static tye checking \n- [Express@5](https://expressjs.com/en/5x/api.html) - Web server\n- [Typegoose](https://typegoose.github.io/typegoose/) - Mongoose wrapper for creating TypeScript interfaces and models\n- [argon2](https://github.com/ranisalt/node-argon2#readme) - Password hashing\n- [Zod](https://github.com/colinhacks/zod) - Validation\n- [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) - Signing and verifying JSON web tokens\n- [Nodemailer](https://nodemailer.com/about/) - Sending emails\n- [Pino](https://github.com/pinojs/pino) - Logging\n- [config](https://github.com/lorenwest/node-config) - Managing configuration\n\n\n## What will you need to follow along?\n- [Postman](https://www.postman.com/downloads/)\n- [Node.js](https://nodejs.org/en/)\n- [MongoDB](https://www.mongodb.com/try/download/community)\n\n## Video structure\n1. Demo\n2. Code walk-through\n3. Bootstrap application\n4. User API\n    1. Create user\n    2. Verify user\n    3. Request reset password code\n    4. Reset password\n    5. Get current user\n5. Authentication API\n    1. Create user session\n    2. Get new access token with refresh tokens","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTomDoesTech%2Fauth-api-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTomDoesTech%2Fauth-api-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTomDoesTech%2Fauth-api-tutorial/lists"}