triston-notes/Cards/dev/JWT Class Boilerplate.md
2023-10-21 18:52:54 -05:00

1.7 KiB

up:: Boilerplate Code X:: JavaScript tags:: #boilerplate

JWT Class Boilerplate

Here is a simple example of how you might use JSON Web Tokens (JWTs) for user management in a TypeScript project:

import jwt from 'jsonwebtoken';

class User {
  private id: number;
  private username: string;
  private password: string;

  constructor(id: number, username: string, password: string) {
    this.id = id;
    this.username = username;
    this.password = password;
  }

  public getId(): number {
    return this.id;
  }

  public getUsername(): string {
    return this.username;
  }

  public setUsername(username: string): void {
    this.username = username;
  }

  public getPassword(): string {
    return this.password;
  }

  public setPassword(password: string): void {
    this.password = password;
  }

  public generateJWT(): string {
    const tokenData = {
      id: this.id,
      username: this.username,
    };

    return jwt.sign(tokenData, process.env.JWT_SECRET);
  }
}

In this example, the User class has three private properties: id, username, and password. The class has a constructor that accepts values for id, username, and password, and assigns them to the respective properties. The class also has methods for accessing and modifying these properties, as well as a method for generating a JSON Web Token (JWT) for the user. The generateJWT method uses the jsonwebtoken library to sign a JSON object containing the user's id and username properties, using a secret key stored in the JWT_SECRET environment variable. This JWT can then be sent to the client and used to authenticate and authorize the user in subsequent requests.