359 lines
13 KiB
JavaScript
359 lines
13 KiB
JavaScript
"use strict";
|
|
(() => {
|
|
var exports = {};
|
|
exports.id = 765;
|
|
exports.ids = [765];
|
|
exports.modules = {
|
|
|
|
/***/ 9137:
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "Z": () => (/* binding */ clearCaches)
|
|
/* harmony export */ });
|
|
// @ts-check
|
|
/**
|
|
* Clear Caches function
|
|
* ==============================================================================
|
|
*/ async function clearCaches() {
|
|
try {
|
|
/** Initialize
|
|
* ==============================================================================
|
|
*/ /** ********************* Variables */ const keys = await caches.keys();
|
|
if (keys[0]) {
|
|
await Promise.all(keys.map((key)=>{
|
|
return caches.delete(key);
|
|
}));
|
|
}
|
|
} catch (/** @type {any} */ error) {
|
|
console.log("Error in clearing cache =>", error.message);
|
|
}
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 1780:
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "default": () => (/* binding */ Login),
|
|
/* harmony export */ "getServerSideProps": () => (/* binding */ getServerSideProps)
|
|
/* harmony export */ });
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(968);
|
|
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7147);
|
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_3__);
|
|
/* harmony import */ var _functions_frontend_fetchApi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6729);
|
|
/* harmony import */ var _functions_frontend_clearCaches__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9137);
|
|
/* harmony import */ var _components_general_LoadingBlock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5264);
|
|
/**
|
|
* Imports
|
|
* ==============================================================================
|
|
*/
|
|
|
|
|
|
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
const userAuth = __webpack_require__(370);
|
|
|
|
|
|
|
|
/**
|
|
* Main Component { Functional }
|
|
* ==============================================================================
|
|
* @param {Object} props - React component props including { children }
|
|
* @param {import("@/package-shared/types").UserType} props.user
|
|
* @param {any} props.query
|
|
*/ function Login({ user , query }) {
|
|
/**
|
|
* Get Contexts
|
|
*
|
|
* @abstract { React.useContext }
|
|
*/ ////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
/**
|
|
* Javascript Variables
|
|
*
|
|
* @abstract Non hook variables and functions
|
|
*/ ////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
// ## Head Items
|
|
let head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), {
|
|
children: [
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("title", {
|
|
children: "Loging Out | Datasquirel"
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("meta", {
|
|
name: "description",
|
|
content: "Login you out"
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("script", {
|
|
src: "https://accounts.google.com/gsi/client"
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("script", {
|
|
src: "https://connect.facebook.net/en_US/sdk.js",
|
|
crossOrigin: "anonymous"
|
|
})
|
|
]
|
|
});
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
/**
|
|
* React Hooks
|
|
*
|
|
* @abstract { useState, useEffect, useRef, etc ... }
|
|
*/ react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(()=>{
|
|
localStorage.setItem("user", "{}");
|
|
localStorage.removeItem("csrf");
|
|
// window.location.pathname = "/"
|
|
}, []);
|
|
react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(()=>{
|
|
function redirect() {
|
|
if (query?.invite && query?.login) {
|
|
return window.location.href = `/login` + window.location.search;
|
|
// return window.location.href = `/login?email=${query.email}`;
|
|
}
|
|
if (query?.login) {
|
|
return window.location.href = `/login`;
|
|
}
|
|
if (localStorage.getItem("logoutParadigm")?.match(/reset/)) {
|
|
return window.location.href = "/login";
|
|
}
|
|
if (user?.social_platform?.match(/google/)) {
|
|
localStorage.setItem("google_prompt_skipped", "logout");
|
|
}
|
|
window.location.pathname = "/";
|
|
}
|
|
////////////////////////////////////////
|
|
(0,_functions_frontend_fetchApi__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)("/api/logoutUser").then(async (res)=>{
|
|
await (0,_functions_frontend_clearCaches__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)();
|
|
let regs = await navigator.serviceWorker.getRegistrations();
|
|
for(let i = 0; i < regs.length; i++){
|
|
const reg = regs[i];
|
|
await reg.unregister();
|
|
}
|
|
try {
|
|
FB.init({
|
|
appId: "2910275882608968",
|
|
cookie: true,
|
|
xfbml: true,
|
|
version: "v13.0"
|
|
});
|
|
FB.getLoginStatus((response)=>{
|
|
if (response.authResponse) {
|
|
FB.logout((res)=>{
|
|
redirect();
|
|
});
|
|
} else {
|
|
google.accounts.id.initialize({
|
|
client_id: "392696781563-imb0ddojfn6m4bdokjk5v80jn546t9tq.apps.googleusercontent.com"
|
|
});
|
|
if (user?.social_platform?.match(/google/) && user.social_id) {
|
|
google.accounts.id.revoke();
|
|
google.accounts.id.revoke(user.social_id, (done)=>{
|
|
console.log(done.error);
|
|
redirect();
|
|
});
|
|
} else {
|
|
redirect();
|
|
}
|
|
}
|
|
});
|
|
} catch (error) {
|
|
(0,_functions_frontend_fetchApi__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)("/api/admin/clientError", {
|
|
method: "post",
|
|
body: {
|
|
component: "logout-page-component/lines-111-142",
|
|
message: error.message,
|
|
user: user
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}, []);
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
/**
|
|
* Function Return
|
|
*
|
|
* @abstract Main Function Return
|
|
*/ return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), {
|
|
children: [
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {
|
|
children: head
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("main", {
|
|
className: "w-screen h-screen flex items-center justify-center p-4 md:p-8",
|
|
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
className: "card max-w-md flex-col items-center bg-white p-6 rounded border border-slate-200 border-solid",
|
|
children: [
|
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("a", {
|
|
href: "/",
|
|
className: "flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("img", {
|
|
src: "/images/logo-icon-alt-2.png",
|
|
alt: "Logo Icon",
|
|
width: 37
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
|
className: "font-bold text-2xl",
|
|
children: "Datasquirel"
|
|
})
|
|
]
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h3", {
|
|
className: "text-lg m-0 mt-4 text-slate-400",
|
|
children: "Logging out"
|
|
}),
|
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_general_LoadingBlock__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
|
position: "relative",
|
|
width: "20px"
|
|
})
|
|
]
|
|
})
|
|
})
|
|
]
|
|
});
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
}
|
|
/**
|
|
* Server Side Props or Static Props
|
|
* ==============================================================================
|
|
* @type {import("next").GetServerSideProps}
|
|
*/ async function getServerSideProps({ req , res , query }) {
|
|
// ## Environment processes
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
/**
|
|
* User Authentication
|
|
*
|
|
* @description User authentication
|
|
*/ const user = await userAuth(req, res);
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
if (user) {
|
|
console.log(user.csrf_k);
|
|
try {
|
|
const allowedAuthKeysPath = process.env.DSQL_USER_LOGIN_KEYS_PATH;
|
|
const allowedAuthKeyPath = `${allowedAuthKeysPath}/${user.csrf_k}`;
|
|
console.log("allowedAuthKeyPath", allowedAuthKeyPath);
|
|
fs__WEBPACK_IMPORTED_MODULE_3___default().unlinkSync(allowedAuthKeyPath);
|
|
} catch (/** @type {any} */ error) {
|
|
console.log(`Logout API error: ${error.message}`);
|
|
}
|
|
}
|
|
/**
|
|
* Page/Site Data Data Fetching
|
|
*
|
|
* @description Fetch data on the server before returning
|
|
*/ res.setHeader("Set-Cookie", [
|
|
"datasquirelAuthKey=none;max-age=0",
|
|
"usertype=none;max-age=0",
|
|
`refresh_properties=1;Max-Age=7000`,
|
|
]);
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
/**
|
|
* Server props return
|
|
*
|
|
* @description Return data fetched on the server side
|
|
*/ return {
|
|
props: {
|
|
user: user,
|
|
logged_out: true,
|
|
query
|
|
}
|
|
};
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
////////////////////////////////////////
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 968:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/head");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 6689:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("react");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 997:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("react/jsx-runtime");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 2261:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("serverless-mysql");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 4300:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("buffer");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 6113:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("crypto");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 7147:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("fs");
|
|
|
|
/***/ }),
|
|
|
|
/***/ 3685:
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("http");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
;
|
|
|
|
// load runtime
|
|
var __webpack_require__ = require("../webpack-runtime.js");
|
|
__webpack_require__.C(exports);
|
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
var __webpack_exports__ = __webpack_require__.X(0, [5264,6729,4480,370], () => (__webpack_exec__(1780)));
|
|
module.exports = __webpack_exports__;
|
|
|
|
})(); |