fix(): remove originHeader decorator (#12245)
Fix https://github.com/twentyhq/core-team-issues/issues/858#issuecomment-2891213392 Fix #11966 Fix #12175
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const GET_AUTH_TOKENS_FROM_LOGIN_TOKEN = gql`
|
||||
mutation GetAuthTokensFromLoginToken($loginToken: String!) {
|
||||
getAuthTokensFromLoginToken(loginToken: $loginToken) {
|
||||
mutation GetAuthTokensFromLoginToken($loginToken: String!, $origin: String!) {
|
||||
getAuthTokensFromLoginToken(loginToken: $loginToken, origin: $origin) {
|
||||
tokens {
|
||||
...AuthTokensFragment
|
||||
}
|
||||
|
||||
@ -5,11 +5,13 @@ export const GET_LOGIN_TOKEN_FROM_CREDENTIALS = gql`
|
||||
$email: String!
|
||||
$password: String!
|
||||
$captchaToken: String
|
||||
$origin: String!
|
||||
) {
|
||||
getLoginTokenFromCredentials(
|
||||
email: $email
|
||||
password: $password
|
||||
captchaToken: $captchaToken
|
||||
origin: $origin
|
||||
) {
|
||||
loginToken {
|
||||
...AuthTokenFragment
|
||||
|
||||
@ -4,10 +4,12 @@ export const GET_LOGIN_TOKEN_FROM_EMAIL_VERIFICATION_TOKEN = gql`
|
||||
mutation GetLoginTokenFromEmailVerificationToken(
|
||||
$emailVerificationToken: String!
|
||||
$captchaToken: String
|
||||
$origin: String!
|
||||
) {
|
||||
getLoginTokenFromEmailVerificationToken(
|
||||
emailVerificationToken: $emailVerificationToken
|
||||
captchaToken: $captchaToken
|
||||
origin: $origin
|
||||
) {
|
||||
loginToken {
|
||||
...AuthTokenFragment
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const RESEND_EMAIL_VERIFICATION_TOKEN = gql`
|
||||
mutation ResendEmailVerificationToken($email: String!) {
|
||||
resendEmailVerificationToken(email: $email) {
|
||||
mutation ResendEmailVerificationToken($email: String!, $origin: String!) {
|
||||
resendEmailVerificationToken(email: $email, origin: $origin) {
|
||||
success
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const GET_PUBLIC_WORKSPACE_DATA_BY_DOMAIN = gql`
|
||||
query GetPublicWorkspaceDataByDomain {
|
||||
getPublicWorkspaceDataByDomain {
|
||||
query GetPublicWorkspaceDataByDomain($origin: String!) {
|
||||
getPublicWorkspaceDataByDomain(origin: $origin) {
|
||||
id
|
||||
logo
|
||||
displayName
|
||||
|
||||
@ -14,6 +14,7 @@ export const queries = {
|
||||
|
||||
export const email = 'test@test.com';
|
||||
export const password = 'testing';
|
||||
export const origin = 'http://localhost';
|
||||
export const token =
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
|
||||
|
||||
@ -21,8 +22,9 @@ export const variables = {
|
||||
getLoginTokenFromCredentials: {
|
||||
email,
|
||||
password,
|
||||
origin,
|
||||
},
|
||||
getAuthTokensFromLoginToken: { loginToken: token },
|
||||
getAuthTokensFromLoginToken: { loginToken: token, origin },
|
||||
signup: {
|
||||
email,
|
||||
password,
|
||||
|
||||
@ -53,6 +53,7 @@ import { isEmailVerificationRequiredState } from '@/client-config/states/isEmail
|
||||
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
||||
import { useIsCurrentLocationOnAWorkspace } from '@/domain-manager/hooks/useIsCurrentLocationOnAWorkspace';
|
||||
import { useLastAuthenticatedWorkspaceDomain } from '@/domain-manager/hooks/useLastAuthenticatedWorkspaceDomain';
|
||||
import { useOrigin } from '@/domain-manager/hooks/useOrigin';
|
||||
import { useRedirect } from '@/domain-manager/hooks/useRedirect';
|
||||
import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain';
|
||||
import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState';
|
||||
@ -74,6 +75,7 @@ export const useAuth = () => {
|
||||
currentWorkspaceMemberState,
|
||||
);
|
||||
const setCurrentUserWorkspace = useSetRecoilState(currentUserWorkspaceState);
|
||||
const { origin } = useOrigin();
|
||||
|
||||
const setCurrentWorkspaceMembers = useSetRecoilState(
|
||||
currentWorkspaceMembersState,
|
||||
@ -179,6 +181,7 @@ export const useAuth = () => {
|
||||
email,
|
||||
password,
|
||||
captchaToken,
|
||||
origin,
|
||||
},
|
||||
});
|
||||
if (isDefined(getLoginTokenResult.errors)) {
|
||||
@ -203,7 +206,7 @@ export const useAuth = () => {
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
[getLoginTokenFromCredentials, setSearchParams, setSignInUpStep],
|
||||
[getLoginTokenFromCredentials, setSearchParams, setSignInUpStep, origin],
|
||||
);
|
||||
|
||||
const handleGetLoginTokenFromEmailVerificationToken = useCallback(
|
||||
@ -212,6 +215,7 @@ export const useAuth = () => {
|
||||
variables: {
|
||||
emailVerificationToken,
|
||||
captchaToken,
|
||||
origin,
|
||||
},
|
||||
});
|
||||
|
||||
@ -225,7 +229,7 @@ export const useAuth = () => {
|
||||
|
||||
return loginTokenResult.data.getLoginTokenFromEmailVerificationToken;
|
||||
},
|
||||
[getLoginTokenFromEmailVerificationToken],
|
||||
[getLoginTokenFromEmailVerificationToken, origin],
|
||||
);
|
||||
|
||||
const loadCurrentUser = useCallback(async () => {
|
||||
@ -335,7 +339,10 @@ export const useAuth = () => {
|
||||
const handleGetAuthTokensFromLoginToken = useCallback(
|
||||
async (loginToken: string) => {
|
||||
const getAuthTokensResult = await getAuthTokensFromLoginToken({
|
||||
variables: { loginToken },
|
||||
variables: {
|
||||
loginToken,
|
||||
origin,
|
||||
},
|
||||
});
|
||||
|
||||
if (isDefined(getAuthTokensResult.errors)) {
|
||||
@ -364,6 +371,7 @@ export const useAuth = () => {
|
||||
setTokenPair,
|
||||
refreshObjectMetadataItems,
|
||||
loadCurrentUser,
|
||||
origin,
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { useOrigin } from '@/domain-manager/hooks/useOrigin';
|
||||
import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar';
|
||||
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
||||
import { t } from '@lingui/core/macro';
|
||||
@ -9,6 +10,7 @@ export const useHandleResendEmailVerificationToken = () => {
|
||||
const { enqueueSnackBar } = useSnackBar();
|
||||
const [resendEmailVerificationToken, { loading }] =
|
||||
useResendEmailVerificationTokenMutation();
|
||||
const { origin } = useOrigin();
|
||||
|
||||
const handleResendEmailVerificationToken = useCallback(
|
||||
(email: string | null) => {
|
||||
@ -22,7 +24,10 @@ export const useHandleResendEmailVerificationToken = () => {
|
||||
|
||||
try {
|
||||
const { data } = await resendEmailVerificationToken({
|
||||
variables: { email },
|
||||
variables: {
|
||||
email,
|
||||
origin,
|
||||
},
|
||||
});
|
||||
|
||||
if (data?.resendEmailVerificationToken?.success === true) {
|
||||
@ -41,7 +46,7 @@ export const useHandleResendEmailVerificationToken = () => {
|
||||
}
|
||||
};
|
||||
},
|
||||
[enqueueSnackBar, resendEmailVerificationToken],
|
||||
[enqueueSnackBar, resendEmailVerificationToken, origin],
|
||||
);
|
||||
|
||||
return { handleResendEmailVerificationToken, loading };
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { workspacePublicDataState } from '@/auth/states/workspacePublicDataState';
|
||||
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
||||
import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useIsCurrentLocationOnDefaultDomain';
|
||||
import { useOrigin } from '@/domain-manager/hooks/useOrigin';
|
||||
import { useRedirectToDefaultDomain } from '@/domain-manager/hooks/useRedirectToDefaultDomain';
|
||||
import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState';
|
||||
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
||||
@ -10,6 +11,7 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
export const useGetPublicWorkspaceDataByDomain = () => {
|
||||
const { isDefaultDomain } = useIsCurrentLocationOnDefaultDomain();
|
||||
const isMultiWorkspaceEnabled = useRecoilValue(isMultiWorkspaceEnabledState);
|
||||
const { origin } = useOrigin();
|
||||
const setWorkspaceAuthProviders = useSetRecoilState(
|
||||
workspaceAuthProvidersState,
|
||||
);
|
||||
@ -20,6 +22,9 @@ export const useGetPublicWorkspaceDataByDomain = () => {
|
||||
);
|
||||
|
||||
const { loading, data, error } = useGetPublicWorkspaceDataByDomainQuery({
|
||||
variables: {
|
||||
origin,
|
||||
},
|
||||
skip:
|
||||
(isMultiWorkspaceEnabled && isDefaultDomain) ||
|
||||
isDefined(workspacePublicData),
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
import { useMemo } from 'react';
|
||||
|
||||
export const useOrigin = () => {
|
||||
const origin = useMemo(() => window.location.origin, []);
|
||||
|
||||
return { origin };
|
||||
};
|
||||
Reference in New Issue
Block a user