Web: Fixed name encoding.

This commit is contained in:
Tatiana Lopaeva 2024-03-04 12:14:19 +03:00
parent eacc122048
commit cb7d2138cd
2 changed files with 32 additions and 11 deletions

View File

@ -158,14 +158,22 @@ const CreateUserForm = (props) => {
const headerKey = linkData.confirmHeader;
try {
const toBinaryStr = (str) => {
const encoder = new TextEncoder();
const charCodes = encoder.encode(str);
return String.fromCharCode(...charCodes);
};
const loginData = window.btoa(
JSON.stringify({
type: "invitation",
email,
roomName,
firstName: user.firstName,
lastName: user.lastName,
}),
toBinaryStr(
JSON.stringify({
type: "invitation",
email,
roomName,
firstName: user.firstName,
lastName: user.lastName,
}),
),
);
await getUserByEmail(email, headerKey);
@ -176,6 +184,8 @@ const CreateUserForm = (props) => {
`?loginData=${loginData}`,
);
} catch (err) {
console.error(err);
const status = err?.response?.status;
const isNotExistUser = status === 404;
@ -463,7 +473,7 @@ const CreateUserForm = (props) => {
</GreetingContainer>
<FormWrapper>
<RegisterContainer>
<RegisterContainer>
<form className="auth-form-container">
<div className="auth-form-fields">
{!registrationForm && (

View File

@ -58,13 +58,24 @@ const Login: React.FC<ILoginProps> = ({
useEffect(() => {
if (search) {
const isInviteInfo = search.indexOf("loginData=");
const firstIndex = search.indexOf("loginData=");
if (isInviteInfo === -1) return;
if (firstIndex === -1) return;
const fromBinaryStr = (encodeString: string) => {
const decodeStr = atob(encodeString);
const decoder = new TextDecoder();
const charCodeArray = Uint8Array.from(
{ length: decodeStr.length },
(element, index) => decodeStr.charCodeAt(index)
);
return decoder.decode(charCodeArray);
};
const encodeString = search.slice(search.indexOf("=") + 1);
const decodeString = atob(encodeString);
const decodeString = fromBinaryStr(encodeString);
const queryParams = JSON.parse(decodeString);
setInvitationLinkData(queryParams);