make popup window removed video token and cookie when it is closed. Fixed mobile context menu not being able to download files
This commit is contained in:
@@ -3,10 +3,11 @@ import FileService from "../services/FileService";
|
||||
import MongoService from "../services/ChunkService/MongoService";
|
||||
import FileSystemService from "../services/ChunkService/FileSystemService";
|
||||
import S3Service from "../services/ChunkService/S3Service";
|
||||
import {UserInterface} from "../models/user";
|
||||
import User, {UserInterface} from "../models/user";
|
||||
import tempStorage from "../tempStorage/tempStorage";
|
||||
import sendShareEmail from "../utils/sendShareEmail";
|
||||
import { createStreamVideoCookie } from "../cookies/createCookies";
|
||||
import { createStreamVideoCookie, removeStreamVideoCookie } from "../cookies/createCookies";
|
||||
import { ObjectID } from "mongodb";
|
||||
|
||||
const fileService = new FileService()
|
||||
|
||||
@@ -24,7 +25,8 @@ interface RequestTypeRefresh extends Request {
|
||||
|
||||
interface RequestTypeFullUser extends Request {
|
||||
user?: UserInterface,
|
||||
encryptedToken?: string
|
||||
encryptedToken?: string,
|
||||
accessTokenStreamVideo?: string
|
||||
}
|
||||
|
||||
interface RequestType extends Request {
|
||||
@@ -356,6 +358,30 @@ class FileController {
|
||||
|
||||
}
|
||||
|
||||
removeStreamVideoAccessToken = async(req: RequestTypeFullUser, res: Response) => {
|
||||
|
||||
if (!req.user) return;
|
||||
|
||||
try {
|
||||
|
||||
const userID = req.user._id;
|
||||
|
||||
const accessTokenStreamVideo = req.accessTokenStreamVideo!;
|
||||
|
||||
await User.updateOne({_id: userID}, {$pull: {tempTokens: {token: accessTokenStreamVideo}}});
|
||||
|
||||
removeStreamVideoCookie(res);
|
||||
|
||||
res.send();
|
||||
|
||||
} catch (e) {
|
||||
|
||||
console.log("\Remove Video Token File Router Error:", e.message);
|
||||
const code = !e.code ? 500 : e.code >= 400 && e.code <= 599 ? e.code : 500;
|
||||
res.status(code).send();
|
||||
}
|
||||
}
|
||||
|
||||
// getDownloadTokenVideo = async(req: RequestTypeFullUser, res: Response) => {
|
||||
|
||||
// if (!req.user) {
|
||||
|
||||
@@ -46,4 +46,14 @@ export const createStreamVideoCookie = (res: Response, streamVideoAccessToken: s
|
||||
sameSite: "strict",
|
||||
secure: process.env.NODE_ENV === "production"
|
||||
})
|
||||
}
|
||||
|
||||
export const removeStreamVideoCookie = (res: Response) => {
|
||||
|
||||
res.cookie("video-access-token", {}, {
|
||||
httpOnly: true,
|
||||
maxAge: 0,
|
||||
sameSite: "strict",
|
||||
secure: process.env.NODE_ENV === "production"
|
||||
})
|
||||
}
|
||||
@@ -57,6 +57,8 @@ router.get("/file-service/download/access-token-stream-video", authFullUser, fil
|
||||
|
||||
router.get("/file-service/stream-video/:id", authStreamVideo, fileController.streamVideo);
|
||||
|
||||
router.delete("/file-service/remove-stream-video-token", authStreamVideo, fileController.removeStreamVideoAccessToken);
|
||||
|
||||
//router.get("/file-service/stream-video/:id/:tempToken/:uuid", auth, fileController.streamVideo);
|
||||
|
||||
//router.get("/file-service/stream-video/:id", auth, fileController.streamVideo);
|
||||
|
||||
@@ -8,6 +8,7 @@ interface RequestType extends Request {
|
||||
user?: UserInterface,
|
||||
token?: string,
|
||||
encryptedToken?: string,
|
||||
accessTokenStreamVideo?: string
|
||||
}
|
||||
|
||||
// type jwtType = {
|
||||
@@ -84,6 +85,7 @@ const authStreamVideo = async(req: RequestType, res: Response, next: NextFunctio
|
||||
if (!tokenFound) throw new Error("Refresh Token Not Found");
|
||||
|
||||
req.user = user;
|
||||
req.accessTokenStreamVideo = encryptedToken;
|
||||
|
||||
next();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user