This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| did:3:kjzl6cwe1jw14aolsoc0cc6l8n463w9qxm0d33ofk8a2vho55vzg7nht9x7hyhs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import express from "express"; | |
| import debug from "debug"; | |
| import config from "./config"; | |
| const app: express.Application = express(); | |
| const log = debug("logging"); | |
| config(app); | |
| app.listen(4000, () => log("Express server running on 4000")); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import express from "express"; | |
| import { logger } from "../middlewares"; | |
| import router from "../router"; | |
| export default (app) => { | |
| app.use(express.json()); | |
| app.use(logger); | |
| app.use(router); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import debug from "debug"; | |
| const log = debug("logging"); | |
| export const logger = (req: any, res: any, next: any) { | |
| log(`${req.path} +++++++++++++++++++ ${res.statusCode}`); | |
| next(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export class ErrorResponse extends Error { | |
| c: number; | |
| constructor(c: number, message: string) { | |
| super(message); | |
| this.c = c; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { Router } from "express"; | |
| import { UserController } from "../controllers"; | |
| import { Auth } from "../middlewares"; | |
| const router = Router(); | |
| router.post("/register", UserController.register); | |
| router.post("/login", UserController.login); | |
| router.get("/logged_user", Auth.checkToken, UserController.getLoggedUser); | |
| router.get("/logout", Auth.checkToken, UserController.logout); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import jwt from "jsonwebtoken"; | |
| import { User, Session } from "../db"; | |
| export class Auth { | |
| static async checkToken(req: any, res: any, next: any) { | |
| try { | |
| const { authorization } = req.headers; | |
| // Throw error if authorization header is not present in the request | |
| if (!authorization) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import express from "express"; | |
| import jwt from "jsonwebtoken"; | |
| import bcrypt from "bcryptjs"; | |
| import { v4 as uuid } from "uuid"; | |
| import { User, Session } from "../db"; | |
| import { ErrorResponse } from "../custom"; | |
| export class UserController { | |
| static async register(req: express.Request, res: express.Response) { | |
| try { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { AuthModel } from "./auth"; | |
| import { SessionModel } from "./session"; | |
| export const User = new AuthModel(); | |
| export const Session = new SessionModel(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import mongoose from "mongoose"; | |
| export class SessionModel { | |
| model: mongoose.Model<mongoose.Document, {}>; | |
| constructor() { | |
| this.define(); | |
| } | |
| private define() { | |
| this.model = mongoose.model("Session", new mongoose.Schema({ |
NewerOlder