LLaraNode
Auth Package

Token Generation

Generate and verify JWT tokens for authentication.

Token Generation

Generate and verify JWT tokens for authentication.

Generating Tokens

import { generateToken } from "@lara-node/auth";

// Basic token (expires in 1 hour)
const token = generateToken({ userId: 1 }, 3600);

// Custom payload
const token = generateToken(
  {
    userId: 1,
    role: "admin",
    permissions: ["read", "write"],
  },
  86400,
); // 24 hours

Verifying Tokens

import { verifyToken } from "@lara-node/auth";

try {
  const payload = verifyToken(token);
  console.log(payload.userId);
} catch (error) {
  // Token is invalid or expired
}

Token Expiry

Tokens expire based on the seconds provided:

generateToken(payload, 60); // 1 minute
generateToken(payload, 3600); // 1 hour
generateToken(payload, 86400); // 24 hours
generateToken(payload, 604800); // 7 days

Usage in Auth Flow

@Route("/api/auth")
class AuthController {
  @Route.post("/login")
  async login(req: Request) {
    const { email, password } = req.body;

    const user = await User.where("email", email).first();

    if (!user || !(await comparePassword(password, user.password))) {
      return { error: "Invalid credentials" };
    }

    const token = generateToken({ userId: user.id }, 86400);

    return { token, user: user.toJSON() };
  }
}

Next Steps