diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 7786faf..52147d1 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -8,6 +8,7 @@ import NotFoundPage from "./pages/NotFoundPage";
import UserPage from "./pages/UserPage";
import ResetPasswordPage from "./pages/ResetPasswordPage";
import CategoryPage from "./pages/CategoryPage";
+import CategoriesPage from "./pages/CategoriesPage";
function App() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
@@ -44,6 +45,7 @@ function App() {
} />
}>
}>
+ }>
} />
diff --git a/frontend/src/components/Auth/OAuth.tsx b/frontend/src/components/Auth/OAuth.tsx
index 7f89aff..a9c71d8 100644
--- a/frontend/src/components/Auth/OAuth.tsx
+++ b/frontend/src/components/Auth/OAuth.tsx
@@ -3,7 +3,8 @@ import { useEffect } from "react";
export default function GoogleLogin() {
const handleLoginClick = (e: React.MouseEvent) => {
e.preventDefault();
- window.location.href = "/api/login/google";
+ const nextUrl = encodeURIComponent(window.location.href);
+ window.location.href = `/api/login/google?next=${nextUrl}`;
};
return (
diff --git a/frontend/src/pages/CategoriesPage.tsx b/frontend/src/pages/CategoriesPage.tsx
new file mode 100644
index 0000000..b212061
--- /dev/null
+++ b/frontend/src/pages/CategoriesPage.tsx
@@ -0,0 +1,11 @@
+import React from 'react';
+
+const CategoriesPage: React.FC = () => {
+ return (
+
+
Categories Page
+
+ );
+};
+
+export default CategoriesPage;
diff --git a/web_server/blueprints/oauth.py b/web_server/blueprints/oauth.py
index 11821dd..a40057d 100644
--- a/web_server/blueprints/oauth.py
+++ b/web_server/blueprints/oauth.py
@@ -1,5 +1,5 @@
from authlib.integrations.flask_client import OAuth, OAuthError
-from flask import Blueprint, jsonify, session, redirect
+from flask import Blueprint, jsonify, session, redirect, request
from blueprints.user import get_session_info_email
from database.database import Database
from secrets import token_hex, token_urlsafe
@@ -31,6 +31,8 @@ def login_google():
"""
# Creates nonce to be sent
session["nonce"] = token_urlsafe(16)
+ session["origin"] = request.args.get("next")
+
return google.authorize_redirect(
'http://127.0.0.1:8080/api/google_auth',
nonce=session['nonce']
@@ -82,12 +84,12 @@ def google_auth():
)
user_data = get_session_info_email(user_email)
+ origin = session.pop("origin", "http://127.0.0.1:8080/")
session.clear()
session["username"] = user_data["username"]
session["user_id"] = user_data["user_id"]
- # TODO: redirect back to original page user started on, or other pages based on success failure of login
- return redirect("http://127.0.0.1:8080/")
+ return redirect(origin)
except OAuthError as e:
return jsonify({
diff --git a/web_server/database/app.db b/web_server/database/app.db
index b848ec4..11b7e4e 100644
Binary files a/web_server/database/app.db and b/web_server/database/app.db differ