{"id":23343775,"url":"https://github.com/andyfrith/graphql-user-auth","last_synced_at":"2026-04-29T12:33:45.481Z","repository":{"id":55254203,"uuid":"253272059","full_name":"andyfrith/graphql-user-auth","owner":"andyfrith","description":"A GraphQL, Node.js, TypeORM server application written in Typescript providing user authentication","archived":false,"fork":false,"pushed_at":"2023-01-11T03:58:18.000Z","size":1053,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T16:23:44.250Z","etag":null,"topics":["authentication","graphql","nodejs","postgresql","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/andyfrith.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":"2020-04-05T15:51:23.000Z","updated_at":"2024-04-30T13:03:36.000Z","dependencies_parsed_at":"2023-02-09T01:17:19.666Z","dependency_job_id":null,"html_url":"https://github.com/andyfrith/graphql-user-auth","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andyfrith/graphql-user-auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fgraphql-user-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fgraphql-user-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fgraphql-user-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fgraphql-user-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andyfrith","download_url":"https://codeload.github.com/andyfrith/graphql-user-auth/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fgraphql-user-auth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32426579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T12:24:25.982Z","status":"ssl_error","status_checked_at":"2026-04-29T12:24:24.439Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["authentication","graphql","nodejs","postgresql","typeorm","typescript"],"created_at":"2024-12-21T06:16:22.805Z","updated_at":"2026-04-29T12:33:45.452Z","avatar_url":"https://github.com/andyfrith.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# graphql-user-auth server\n\nThis is a GraphQL, Node.js, TypeORM server application written in Typescript. It provides a GraphQL API which accesses user records stored in a local Postgres database.\n\n## Table of Contents\n\n1. [Introduction](#introduction)\n2. [Features](#features)\n3. [Environment](#environment)\n4. [Other Demos](#other-demos)\n5. [Contact Developer](#contact-developer)\n\n## Introduction\n\nThis very light application serves as a simple demo of several technologies and authentication good-practices.\n\n## Features\n\nA user is defined by the following GraphQL Type:\n\n```ts\n{\n  type User {\n    id: ID!\n    email: String!\n  }\n}\n```\n\nRegistering a user is made possible with the following GraphQL Mutation:\n\n```ts\n{\n  register(email: String!, password: String!): Boolean!\n}\n```\n\nUser login is made possible with the following GraphQL Mutation:\n\n```ts\n{\n  login(email: String!, password: String!): User\n}\n```\n\nRetrieval of the current authenticated user is made possible with the following GraphQL Query:\n\n```ts\n{\n  type Query {\n    me: User\n  }\n}\n```\n\n### JWT\n\n[JSON Web Tokens](https://jwt.io/) was used in the user authentication strategy.\n\n### TypeScript\n\nWhy TypeScript? Because, use of types lends itself to using highly-productive development tools and practices; such as, static checking and code refactoring during JavaScript development. Additionally, there is great support for TypeScript in the development community.\n\n### Node.js\n\nThe application was built using [Node.js](https://nodejs.org/).\n\n### TypeORM\n\nThe application was built using [TypeORM](https://typeorm.io/).\n\n### Postgres\n\nThe application was built using [PostgreSQL](https://www.postgresql.org/).\n\n### GraphQL\n\nThis application was built using the [Apollo Server](https://www.apollographql.com/docs/apollo-server/) GraphQL server and the Node.js apollo-server-express middleware.\n\nThe GraphQL schema is generated using the [GraphQL Code Generator](https://graphql-code-generator.com/).\n\n**[⬆ back to top](#table-of-contents)**\n\n## Environment\n\n### Available Scripts\n\nIn the project directory, you can run:\n\n#### `npm install`\n\nInstalls the necessary modules required to build and run the application.\n\n#### `npm generate`\n\nThe GraphQL schema is generated using the [GraphQL Code Generator](https://graphql-code-generator.com/).\n\n#### `npm start`\n\nStards the Node.js process, runs the app.\u003cbr /\u003e\nOpen [http://localhost:5002/graphql](http://localhost:5002/graphql) to view the GraphQL playground in the browser.\n\n#### `npm run build`\n\nCompiles the typescript using tsc, building the app for production.\n\n#### `npm run test`\n\nTests will be added in the future.\n\n**[⬆ back to top](#table-of-contents)**\n\n## Other Demos\n\n[tmdb-demo-ui](https://github.com/andyfrith/tmdb-demo-ui) - the UI counterpart- a minimal React Typescript application providing a simple UI that acesses the GraphQL API endpoints of the tmdb-demo server\n\n[demo-gql-ui](https://github.com/andyfrith/demo-gql-ui) - A minimal React Typescript application providing a simple UI that acesses the GraphQL API endpoints of the demo-gql server\n\n[react-portal](https://github.com/andyfrith/react-portal) - a React Redux application that provides simple user management tasks upon successful JWT authentication\n\n[greasy-spoon-pos](https://github.com/andyfrith/greasy-spoon-pos) - a React Redux application that provides minimal features of a very basic restaurant Point of Sale system\n\n[goodapplemedia.com](https://github.com/andyfrith/goodapplemedia.com) - a responsive website created with HTML5, Foundation CSS, and ES6 that demonstrates an exceptional and desirable user experience\n\n**[⬆ back to top](#table-of-contents)**\n\n## Contact Developer\n\nI'm driven to deliver exemplary User Experiences and sound application architectures. I enjoy solving customer problems with excellent design and engineering- to greatly affect business success.\n\n[Portfolio](http://goodapplemedia.com)\n\n[Email: afrith.denver.usa@gmail.com](mailto:afrith.denver.gmail.com)\n\n[LinkedIn](https://www.linkedin.com/in/goodapplemedia/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyfrith%2Fgraphql-user-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandyfrith%2Fgraphql-user-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyfrith%2Fgraphql-user-auth/lists"}