diff --git a/app/client/src/index.tsx b/app/client/src/index.tsx
index 5dcb9743f2..8312c6dfb8 100755
--- a/app/client/src/index.tsx
+++ b/app/client/src/index.tsx
@@ -4,7 +4,8 @@ import { Provider } from "react-redux";
import "./index.css";
import App from "./App";
import Editor from "./pages/Editor";
-import PageNotFound from "./pages/PageNotFound";
+import PageNotFound from "./pages/common/PageNotFound";
+import LoginPage from "./pages/common/LoginPage";
import * as serviceWorker from "./serviceWorker";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import { createStore, applyMiddleware } from "redux";
@@ -14,6 +15,7 @@ import { ThemeProvider, theme } from "./constants/DefaultTheme";
import createSagaMiddleware from 'redux-saga'
import { rootSaga } from "./sagas"
import { appInitializer } from "./utils/AppsmithUtils";
+import ProtectedRoute from "./pages/common/ProtectedRoute";
appInitializer()
WidgetBuilderRegistry.registerWidgetBuilders();
@@ -26,7 +28,8 @@ ReactDOM.render(
-
+
+
diff --git a/app/client/src/pages/common/LoginPage.tsx b/app/client/src/pages/common/LoginPage.tsx
new file mode 100644
index 0000000000..ecfce186b0
--- /dev/null
+++ b/app/client/src/pages/common/LoginPage.tsx
@@ -0,0 +1,23 @@
+import * as React from "react"
+
+import { Card, Elevation } from "@blueprintjs/core"
+import { RouterProps } from "react-router";
+
+class LoginPage extends React.PureComponent {
+
+ componentDidMount() {
+ let windowDoc: any = window
+ windowDoc.netlifyIdentity.open();
+ }
+
+ render() {
+ return (
+
+
+ )
+ }
+}
+
+export default LoginPage
+
+
diff --git a/app/client/src/pages/PageNotFound.tsx b/app/client/src/pages/common/PageNotFound.tsx
similarity index 96%
rename from app/client/src/pages/PageNotFound.tsx
rename to app/client/src/pages/common/PageNotFound.tsx
index c7254cbf78..c42203e221 100644
--- a/app/client/src/pages/PageNotFound.tsx
+++ b/app/client/src/pages/common/PageNotFound.tsx
@@ -1,7 +1,6 @@
import * as React from "react"
import { NonIdealState, Button, Card, Elevation } from "@blueprintjs/core"
-import App from "../App";
import { RouterProps } from "react-router";
class PageNotFound extends React.PureComponent {
diff --git a/app/client/src/pages/common/ProtectedRoute.tsx b/app/client/src/pages/common/ProtectedRoute.tsx
new file mode 100644
index 0000000000..d2552bed75
--- /dev/null
+++ b/app/client/src/pages/common/ProtectedRoute.tsx
@@ -0,0 +1,14 @@
+import * as React from "react"
+import _ from "lodash"
+import { Route, Redirect } from "react-router-dom";
+
+const ProtectedRoute = ({ path: path, component: Component, ...rest }: { path: string, component: React.ReactType }) => {
+ let windowDoc: any = window
+ return ( (
+ !_.isNil(windowDoc.netlifyIdentity.currentUser())
+ ?
+ :
+ )} />)
+}
+
+export default ProtectedRoute
\ No newline at end of file