This commit is contained in:
David Arranz 2024-09-08 14:53:56 +02:00
parent 8700c232b4
commit 1a8b3ce6a7
5 changed files with 23 additions and 9 deletions

View File

@ -30,7 +30,8 @@ export class IdentityController extends ExpressController {
async executeImpl() {
try {
const user = <AuthUser>this.req.user;
const req = this.req as AuthenticatedRequest;
const user = <AuthUser>req.user;
if (!user) {
const errorMessage = "Unexpected missing user data";

View File

@ -32,7 +32,8 @@ export class LoginController extends ExpressController {
async executeImpl() {
try {
const user = <AuthUser>this.req.user;
const req = this.req as AuthenticatedRequest;
const user = <AuthUser>req.user;
if (!user) {
const errorMessage = "Unexpected missing user data";

View File

@ -1,7 +1,7 @@
import { AuthUser } from "@/contexts/auth/domain";
import { composeMiddleware, generateExpressError } from "@/contexts/common/infrastructure/express";
import { ensureIdIsValid } from "@shared/contexts";
import * as express from "express";
import Express, * as express from "express";
import httpStatus from "http-status";
import passport from "passport";
@ -13,7 +13,7 @@ export const checkUser = composeMiddleware([
passport.authenticate("local-jwt", {
session: false,
}),
(req: express.Request, res: express.Response, next: express.NextFunction) => {
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
if (req.isAuthenticated()) {
return next();
}
@ -23,7 +23,7 @@ export const checkUser = composeMiddleware([
export const checkisAdmin = composeMiddleware([
checkUser,
(req: express.Request, res: express.Response, next: express.NextFunction) => {
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
const _req = req as AuthenticatedRequest;
const user = <AuthUser>_req.user;
@ -36,7 +36,7 @@ export const checkisAdmin = composeMiddleware([
export const checkAdminOrSelf = composeMiddleware([
checkUser,
(req: express.Request, res: express.Response, next: express.NextFunction) => {
(req: Express.Request, res: Express.Response, next: Express.NextFunction) => {
const _req = req as AuthenticatedRequest;
const user = <AuthUser>_req.user;

View File

@ -12,6 +12,12 @@ import {
import { IProfileContext } from "../../../Profile.context";
import { IUpdateProfilePresenter } from "./presenter";
import { Request } from "express";
interface AuthenticatedRequest extends Request {
user?: User;
}
export class UpdateProfileController extends ExpressController {
private useCase: UpdateProfileUseCase;
private presenter: IUpdateProfilePresenter;
@ -33,7 +39,8 @@ export class UpdateProfileController extends ExpressController {
}
async executeImpl() {
const user = <User>this.req.user;
const req = this.req as AuthenticatedRequest;
const user = <User>req.user;
if (!user) {
const errorMessage = "Unexpected missing Profile data";

View File

@ -1,7 +1,12 @@
import { checkUser, createLoginController } from "@/contexts/auth";
import * as express from "express";
import Express, * as express from "express";
import passport from "passport";
interface AuthenticatedRequest extends Express.Request {
logout(options: passport.LogOutOptions, done: (err: any) => void): void;
logout(done: (err: any) => void): void;
}
export const authRouter = (appRouter: express.Router) => {
const authRoutes: express.Router = express.Router({ mergeParams: true });
@ -16,7 +21,7 @@ export const authRouter = (appRouter: express.Router) => {
);
authRoutes.post("/logout", checkUser, (req: express.Request, res: express.Response) => {
const _req = req as Express.Request;
const _req = req as AuthenticatedRequest;
_req.logout(function (err) {
if (err) {
return res.status(500).json();