diagnosing problem with session storage
This commit is contained in:
@@ -6,27 +6,43 @@ import { UserCtl } from "../controllers";
|
||||
import now from "../util/now";
|
||||
import { restrictAccess } from "../auth/middlewares";
|
||||
import { Session } from "express-session";
|
||||
import ControllerResponse from "../util/ControllerResponse";
|
||||
const AuthInstance = new AuthService();
|
||||
const UserControl = new UserCtl();
|
||||
const UserInstance = new UserCtl();
|
||||
|
||||
const router = Router();
|
||||
|
||||
export const authRoute = (app: Express, passport: PassportStatic) => {
|
||||
app.use('/auth', router);
|
||||
|
||||
router.get('/', restrictAccess, (req, res, next) => {
|
||||
if (!req.user) res.send({ user: undefined });
|
||||
// router.use((req, res, next) => {
|
||||
// console.log(req.isAuthenticated());
|
||||
// console.log(req.session.user);
|
||||
// console.log(req.cookies);
|
||||
// console.log();
|
||||
|
||||
// @ts-ignore: does not recognize structure of req.user
|
||||
const { user } = req.user;
|
||||
const userData = {
|
||||
id: user.id,
|
||||
firstname: user.firstname,
|
||||
lastname: user.lastname,
|
||||
handle: user.handle,
|
||||
email: user.email
|
||||
// next();
|
||||
// })
|
||||
|
||||
router.use((req, res, next) => {
|
||||
console.log(req.session);
|
||||
next();
|
||||
})
|
||||
|
||||
router.get('/', restrictAccess, (req, res, next) => {
|
||||
if (req.session.user) {
|
||||
const user = req.session.user;
|
||||
const userData = {
|
||||
id: user.id,
|
||||
firstname: user.firstname,
|
||||
lastname: user.lastname,
|
||||
handle: user.handle,
|
||||
email: user.email
|
||||
}
|
||||
res.send({ user: userData });
|
||||
} else {
|
||||
res.send({ user: undefined })
|
||||
}
|
||||
res.send({ user: userData });
|
||||
})
|
||||
|
||||
router.get('/protected', restrictAccess, (req, res, next) => {
|
||||
@@ -36,15 +52,24 @@ export const authRoute = (app: Express, passport: PassportStatic) => {
|
||||
router.post('/login', passport.authenticate('local'), async (req, res, next) => {
|
||||
try {
|
||||
const data: IUserAuth = req.body;
|
||||
const response = await AuthInstance.login(data);
|
||||
console.log(data);
|
||||
|
||||
const response: ControllerResponse<any> = await AuthInstance.login(data);
|
||||
|
||||
if (response.ok) {
|
||||
req.logIn(response.user, (error: any) => {
|
||||
if (error) throw error;
|
||||
console.log('login successful');
|
||||
const user = response.data as IUser;
|
||||
|
||||
req.session.regenerate((err) => {
|
||||
if (err) next(err);
|
||||
req.session.user = user;
|
||||
|
||||
req.session.save((err) => {
|
||||
if (err) return next(err);
|
||||
})
|
||||
})
|
||||
|
||||
res.cookie('userid', response.user.id, { maxAge: 1000 * 60 * 60 * 24 });
|
||||
|
||||
res.cookie('userid', user.id, { maxAge: 1000 * 60 * 60 * 24 });
|
||||
|
||||
res.send(response);
|
||||
res.end();
|
||||
} else {
|
||||
|
||||
@@ -43,7 +43,7 @@ export const collectionRoute = (app: Express) => {
|
||||
// router.get('/subscriptions', restrictAccess, async (req, res, next) => {
|
||||
// res.send('sanity check');
|
||||
// // // @ts-ignore
|
||||
// // const { user } = req.user;
|
||||
// // const { user } = req.session.user;
|
||||
// // if (!user) return;
|
||||
|
||||
// // try {
|
||||
@@ -56,7 +56,7 @@ export const collectionRoute = (app: Express) => {
|
||||
|
||||
// router.post('/subscribe', restrictAccess, async (req, res, next) => {
|
||||
// // @ts-ignore
|
||||
// const { user } = req.user;
|
||||
// const { user } = req.session.user;
|
||||
// const { collection } = req.query;
|
||||
|
||||
// try {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Express, Router } from 'express';
|
||||
import { restrictAccess } from '../auth/middlewares';
|
||||
import { UserCtl } from '../controllers';
|
||||
import { IUser } from '../schemas';
|
||||
|
||||
const UserInstance = new UserCtl();
|
||||
const router = Router();
|
||||
@@ -8,12 +9,23 @@ const router = Router();
|
||||
export const friendRouter = (app: Express) => {
|
||||
app.use('/friend', router);
|
||||
|
||||
router.use((req, res, next) => {
|
||||
let test = req.session.user;
|
||||
|
||||
if (req.session.user == undefined) {
|
||||
throw new Error("No session found");
|
||||
} else {
|
||||
const narrowed = req.session.user;
|
||||
next();
|
||||
}
|
||||
})
|
||||
|
||||
router.post('/:targetid', restrictAccess, async (req, res, next) => {
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
const { targetid } = req.params;
|
||||
|
||||
try {
|
||||
const { code, data } = await UserInstance.addFriendship(user.id, targetid);
|
||||
const { code, data } = await UserInstance.addFriendship(user.id as number, targetid);
|
||||
res.status(code).send(data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
@@ -22,15 +34,15 @@ export const friendRouter = (app: Express) => {
|
||||
|
||||
// get all friendships for a user
|
||||
router.get('/', async (req, res, next) => {
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
const { pending } = req.query;
|
||||
|
||||
try {
|
||||
if (pending) {
|
||||
const { code, data } = await UserInstance.getPendingFriendRequests(user.id);
|
||||
const { code, data } = await UserInstance.getPendingFriendRequests(user.id as number);
|
||||
res.status(code).send(data);
|
||||
} else {
|
||||
const { code, data } = await UserInstance.getFriends(user.id);
|
||||
const { code, data } = await UserInstance.getFriends(user.id as number);
|
||||
res.status(code).send(data);
|
||||
}
|
||||
} catch(e) {
|
||||
@@ -41,10 +53,10 @@ export const friendRouter = (app: Express) => {
|
||||
// get one friendship by its id
|
||||
router.get('/:id', async (req, res, next) => {
|
||||
const { id } = req.params;
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
|
||||
try {
|
||||
const { code, data } = await UserInstance.getFriendshipByID(id, user.id);
|
||||
const { code, data } = await UserInstance.getFriendshipByID(id, user.id as number);
|
||||
res.status(code).send(data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
@@ -64,10 +76,10 @@ export const friendRouter = (app: Express) => {
|
||||
router.put('/:id', async (req, res, next) => {
|
||||
const data = req.body;
|
||||
const { id } = req.params;
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
|
||||
try {
|
||||
const response = await UserInstance.updateFriendship(id, user.id, data);
|
||||
const response = await UserInstance.updateFriendship(id, user.id as number, data);
|
||||
res.status(response.code).send(response.data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Express, Router } from "express"
|
||||
import { restrictAccess } from "../auth/middlewares";
|
||||
import RecipeCtl from "../controllers/RecipeCtl";
|
||||
import { IRecipe } from "../schemas";
|
||||
import { IRecipe, IUser } from "../schemas";
|
||||
import { CtlResponse } from "../util/types";
|
||||
const recipectl = new RecipeCtl();
|
||||
|
||||
@@ -14,7 +14,7 @@ export const recipeRoute = (app: Express) => {
|
||||
const { id } = req.params;
|
||||
|
||||
try {
|
||||
const { code, data } = await recipectl.getOne(id);
|
||||
const { code, data } = await recipectl.getOne(parseInt(id));
|
||||
res.status(code).send(data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
@@ -22,17 +22,17 @@ export const recipeRoute = (app: Express) => {
|
||||
})
|
||||
|
||||
router.get('/', restrictAccess, async (req, res, next) => {
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
const { filterby } = req.query;
|
||||
|
||||
try {
|
||||
let result: CtlResponse<IRecipe[] | string>;
|
||||
switch (filterby) {
|
||||
case "myrecipes":
|
||||
result = await recipectl.getAllAuthored(user.id);
|
||||
result = await recipectl.getAllAuthored(user.id as number);
|
||||
break;
|
||||
default:
|
||||
result = await recipectl.getAllAccessible(user.id);
|
||||
result = await recipectl.getAllAccessible(user.id as number);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ export const recipeRoute = (app: Express) => {
|
||||
const { id } = req.params;
|
||||
|
||||
try {
|
||||
const result: CtlResponse<IRecipe | string> = await recipectl.updateOne(id, data);
|
||||
const result: CtlResponse<IRecipe | string> = await recipectl.updateOne(parseInt(id), data);
|
||||
res.status(result.code).send(result.data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
@@ -55,11 +55,11 @@ export const recipeRoute = (app: Express) => {
|
||||
})
|
||||
|
||||
router.post('/', restrictAccess, async (req, res, next) => {
|
||||
const { user }: any = req.user;
|
||||
const user = req.session.user as IUser;
|
||||
const data = req.body;
|
||||
|
||||
try {
|
||||
const result = await recipectl.post(user.id, data);
|
||||
const result = await recipectl.post(user.id as number, data);
|
||||
res.status(result.code).send(result.data);
|
||||
} catch(e) {
|
||||
next(e);
|
||||
|
||||
@@ -9,7 +9,7 @@ export const subscriptionRoute = (app: Express) => {
|
||||
|
||||
router.get('/', async (req, res, next) => {
|
||||
// @ts-ignore
|
||||
const { user } = req.user;
|
||||
const { user } = req.session.user;
|
||||
if (!user) return;
|
||||
|
||||
try {
|
||||
@@ -22,7 +22,7 @@ export const subscriptionRoute = (app: Express) => {
|
||||
|
||||
router.post('/', restrictAccess, async (req, res, next) => {
|
||||
// @ts-ignore
|
||||
const { user } = req.user;
|
||||
const { user } = req.session.user;
|
||||
const { collection } = req.query;
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user