mirror of
https://github.com/logto-io/logto.git
synced 2025-04-07 23:01:25 -05:00
fix(console): save generated password in session storage (#2116)
This commit is contained in:
parent
4dc3fbcc0b
commit
8a7f875767
4 changed files with 10 additions and 7 deletions
|
@ -5,3 +5,4 @@ export * from './logs';
|
|||
|
||||
export const themeStorageKey = 'logto:admin_console:theme';
|
||||
export const requestTimeout = 20_000;
|
||||
export const generatedPasswordStorageKey = 'logto:admin_console:generated_password';
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useMemo, useState } from 'react';
|
|||
import { toast } from 'react-hot-toast';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import ReactModal from 'react-modal';
|
||||
import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom';
|
||||
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
||||
import useSWR from 'swr';
|
||||
|
||||
import Back from '@/assets/images/back.svg';
|
||||
|
@ -18,6 +18,7 @@ import DeleteConfirmModal from '@/components/DeleteConfirmModal';
|
|||
import DetailsSkeleton from '@/components/DetailsSkeleton';
|
||||
import LinkButton from '@/components/LinkButton';
|
||||
import TabNav, { TabNavItem } from '@/components/TabNav';
|
||||
import { generatedPasswordStorageKey } from '@/consts';
|
||||
import { generateAvatarPlaceHolderById } from '@/consts/avatars';
|
||||
import useApi, { RequestError } from '@/hooks/use-api';
|
||||
import * as detailsStyles from '@/scss/details.module.scss';
|
||||
|
@ -33,15 +34,13 @@ const UserDetails = () => {
|
|||
const location = useLocation();
|
||||
const isLogs = location.pathname.endsWith('/logs');
|
||||
const { userId } = useParams();
|
||||
const [searchParameters, setSearchParameters] = useSearchParams();
|
||||
const passwordEncoded = searchParameters.get('password');
|
||||
const password = passwordEncoded && atob(passwordEncoded);
|
||||
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
|
||||
const [isDeleteFormOpen, setIsDeleteFormOpen] = useState(false);
|
||||
const [isDeleting, setIsDeleting] = useState(false);
|
||||
const [isDeleted, setIsDeleted] = useState(false);
|
||||
const [isResetPasswordFormOpen, setIsResetPasswordFormOpen] = useState(false);
|
||||
const [resetResult, setResetResult] = useState<string>();
|
||||
const [password, setPassword] = useState(sessionStorage.getItem(generatedPasswordStorageKey));
|
||||
|
||||
const { data, error, mutate } = useSWR<User, RequestError>(userId && `/api/users/${userId}`);
|
||||
const isLoading = !data && !error;
|
||||
|
@ -192,7 +191,8 @@ const UserDetails = () => {
|
|||
username={data.username ?? '-'}
|
||||
password={password}
|
||||
onClose={() => {
|
||||
setSearchParameters({});
|
||||
setPassword(null);
|
||||
sessionStorage.removeItem(generatedPasswordStorageKey);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
|
|
@ -37,7 +37,7 @@ const CreateForm = ({ onClose }: Props) => {
|
|||
const password = nanoid(8);
|
||||
|
||||
const createdUser = await api.post('/api/users', { json: { ...data, password } }).json<User>();
|
||||
onClose?.(createdUser, btoa(password));
|
||||
onClose?.(createdUser, password);
|
||||
});
|
||||
|
||||
return (
|
||||
|
|
|
@ -19,6 +19,7 @@ import Search from '@/components/Search';
|
|||
import TableEmpty from '@/components/Table/TableEmpty';
|
||||
import TableError from '@/components/Table/TableError';
|
||||
import TableLoading from '@/components/Table/TableLoading';
|
||||
import { generatedPasswordStorageKey } from '@/consts';
|
||||
import { generateAvatarPlaceHolderById } from '@/consts/avatars';
|
||||
import { RequestError } from '@/hooks/use-api';
|
||||
import * as modalStyles from '@/scss/modal.module.scss';
|
||||
|
@ -67,7 +68,8 @@ const Users = () => {
|
|||
setIsCreateFormOpen(false);
|
||||
|
||||
if (createdUser && password) {
|
||||
navigate(`/users/${createdUser.id}?password=${password}`);
|
||||
sessionStorage.setItem(generatedPasswordStorageKey, password);
|
||||
navigate(`/users/${createdUser.id}`);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
|
Loading…
Add table
Reference in a new issue