npm package: @koakh/nestjs-package-jwt-authentication-graphql
Description: <h1 align="center"></h1>
Latest version: 1.0.2

# README
## @nestjsplus/dyn-schematics

<h1 align="center"></h1>

<div align="center">
  <a href="http://nestjs.com/" target="_blank">
    <img src="https://nestjs.com/img/logo_text.svg" width="150" alt="Nest Logo" />
  </a>
</div>

<h3 align="center">Nestjs Package : Jwt Authentication Graphql -- generated by @nestjsplus/dyn-schematics</h3>

<div align="center">
  <a href="https://nestjs.com" target="_blank">
    <img src="https://img.shields.io/badge/built%20with-NestJs-red.svg" alt="Built with NestJS">
  </a>
  <a href="https://github.com/nestjsplus/dyn-schematics" target="_blank">
    <img src="https://img.shields.io/badge/Built%20with-%40nestjsplus%2Fdyn--schematics-brightgreen" alt="Built with @nestjsplus/dyn-schematics">
  </a>
</div>

This dynamic module was generated with [Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-schematics).  You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics).

### Installation

To install this generated project:

```bash
$ npm install
```

(or yarn equivalent)

### Running

If you selected `yes` for the question `Generate a testing client?`, a small testing module was automatically generated
called NestGraphqlAuthClientModule.  You can test that the template was properly generated by running

```bash
$ npm run start:dev
```

Then connect to [http://localhost:3000](http://localhost:3000).

### Customizing

The files in the project have comments that should help guide you.

You can also refer to [this article](https://dev.to/nestjs/advanced-nestjs-how-to-build-completely-dynamic-nestjs-modules-1370) for details on the concepts behind this module pattern.

You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics).

### About @nestjsplus/dyn-schematics

[Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-schematics) generates a starter template for building NestJS dynamic packages.  It uses the `@nestjs/cli` core package, and provides customized schematics for generating modular NestJS applications.  See [here](https://github.com/nestjsplus/dyn-schematics) for the full set of available schematics, and documentation.

## How to use Package

### Create a NestJs GraphQL Project

tip can start from [12-graphql-schema-first](https://github.com/nestjs/nest/tree/master/sample/12-graphql-schema-first), or [23-graphql-code-first](https://github.com/nestjs/nest/tree/master/sample/23-graphql-code-first)

### Add Package to project

- [@koakh/nestjs-package-jwt-authentication-graphql](https://www.npmjs.com/package/@koakh/nestjs-package-jwt-authentication-graphql)

```shell
$ npm i @koakh/nestjs-package-jwt-authentication-graphql
```
### Required UserService

this library purpose is to have a standalone package with graphql jwt authentication, where we can inject a `UserService` that implements the `UserServiceAbstract` contract, this way we can use diferent UserService implementations like inMemory users, used to test or quick start, and other kind data base/orm implemenattions like TypeOrm, Moogoose, Neo4J, Postgres etc

`src/abstracts/users-service.abstract.ts`

```typescript
export abstract class UserServiceAbstract {
  abstract findOneByField(field: string, value: string, currentUser?: CurrentUserPayload) : Promise<AuthUser | undefined>;
}
```