From b6f7a85a2abf07aed6fa5b3bbe7246e9b3e78ef2 Mon Sep 17 00:00:00 2001 From: boojack Date: Wed, 28 Dec 2022 20:58:59 +0800 Subject: [PATCH] fix: reload page when sign out (#871) --- server/auth.go | 27 +++++++++++++-------------- web/src/components/UserBanner.tsx | 5 ++--- web/src/store/module/user.ts | 1 - 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/server/auth.go b/server/auth.go index 3224e5f8..f8124512 100644 --- a/server/auth.go +++ b/server/auth.go @@ -54,20 +54,6 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { return nil }) - g.POST("/auth/logout", func(c echo.Context) error { - ctx := c.Request().Context() - err := removeUserSession(c) - if err != nil { - return echo.NewHTTPError(http.StatusInternalServerError, "Failed to set logout session").SetInternal(err) - } - s.Collector.Collect(ctx, &metric.Metric{ - Name: "user logout", - }) - - c.Response().WriteHeader(http.StatusOK) - return nil - }) - g.POST("/auth/signup", func(c echo.Context) error { ctx := c.Request().Context() signup := &api.Signup{} @@ -143,4 +129,17 @@ func (s *Server) registerAuthRoutes(g *echo.Group) { } return nil }) + + g.POST("/auth/logout", func(c echo.Context) error { + ctx := c.Request().Context() + err := removeUserSession(c) + if err != nil { + return echo.NewHTTPError(http.StatusInternalServerError, "Failed to set logout session").SetInternal(err) + } + s.Collector.Collect(ctx, &metric.Metric{ + Name: "user logout", + }) + + return c.JSON(http.StatusOK, true) + }) } diff --git a/web/src/components/UserBanner.tsx b/web/src/components/UserBanner.tsx index cd4176aa..e640ff45 100644 --- a/web/src/components/UserBanner.tsx +++ b/web/src/components/UserBanner.tsx @@ -1,6 +1,5 @@ import { useCallback, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; -import { useNavigate } from "react-router-dom"; import { useLocationStore, useMemoStore, useTagStore, useUserStore } from "../store/module"; import { getMemoStats } from "../helpers/api"; import * as utils from "../helpers/utils"; @@ -13,7 +12,6 @@ import "../less/user-banner.less"; const UserBanner = () => { const { t } = useTranslation(); - const navigate = useNavigate(); const locationStore = useLocationStore(); const userStore = useUserStore(); const memoStore = useMemoStore(); @@ -66,7 +64,8 @@ const UserBanner = () => { }; const handleSignOutBtnClick = async () => { - navigate("/auth"); + await userStore.doSignOut(); + window.location.href = "/auth"; }; return ( diff --git a/web/src/store/module/user.ts b/web/src/store/module/user.ts index ba537c0c..6c3289c7 100644 --- a/web/src/store/module/user.ts +++ b/web/src/store/module/user.ts @@ -92,7 +92,6 @@ const doSignIn = async () => { }; const doSignOut = async () => { - store.dispatch(setUser()); await api.signout(); };