feat: only follow `serverUrlPrefix` at redirect to client (#5295) fix: use secure websocket (#5297)
This commit is contained in:
@@ -81,8 +81,7 @@ const snapshotFetcher = async (
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const res = await fetchWithTraceReport(
|
const res = await fetchWithTraceReport(
|
||||||
runtimeConfig.serverUrlPrefix +
|
`/api/workspaces/${workspaceId}/docs/${pageDocId}/histories/${ts}`,
|
||||||
`/api/workspaces/${workspaceId}/docs/${pageDocId}/histories/${ts}`,
|
|
||||||
{
|
{
|
||||||
priority: 'high',
|
priority: 'high',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,7 +140,9 @@ export const AffineSharePage = (props: ShareMenuProps) => {
|
|||||||
lineHeight: '20px',
|
lineHeight: '20px',
|
||||||
}}
|
}}
|
||||||
value={
|
value={
|
||||||
isSharedPage ? sharingUrl : `${runtimeConfig.serverUrlPrefix}/...`
|
isSharedPage
|
||||||
|
? sharingUrl
|
||||||
|
: `${location.protocol}//${location.hostname}/...`
|
||||||
}
|
}
|
||||||
readOnly
|
readOnly
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -19,8 +19,11 @@ export const generateUrl = ({
|
|||||||
// to generate a public url like https://affine.app/share/123/456
|
// to generate a public url like https://affine.app/share/123/456
|
||||||
// or https://affine.app/share/123/456?mode=edgeless
|
// or https://affine.app/share/123/456?mode=edgeless
|
||||||
|
|
||||||
|
const { protocol, hostname, port } = window.location;
|
||||||
const url = new URL(
|
const url = new URL(
|
||||||
`${runtimeConfig.serverUrlPrefix}/${urlType}/${workspaceId}/${pageId}`
|
`${protocol}//${hostname}${
|
||||||
|
port ? `:${port}` : ''
|
||||||
|
}/${urlType}/${workspaceId}/${pageId}`
|
||||||
);
|
);
|
||||||
return url.toString();
|
return url.toString();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,8 +38,7 @@ export async function downloadBinaryFromCloud(
|
|||||||
pageGuid: string
|
pageGuid: string
|
||||||
): Promise<CloudDoc | null> {
|
): Promise<CloudDoc | null> {
|
||||||
const response = await fetchWithTraceReport(
|
const response = await fetchWithTraceReport(
|
||||||
runtimeConfig.serverUrlPrefix +
|
`/api/workspaces/${rootGuid}/docs/${pageGuid}`,
|
||||||
`/api/workspaces/${rootGuid}/docs/${pageGuid}`,
|
|
||||||
{
|
{
|
||||||
priority: 'high',
|
priority: 'high',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,9 +22,7 @@ import useSWRMutation from 'swr/mutation';
|
|||||||
|
|
||||||
setupGlobal();
|
setupGlobal();
|
||||||
|
|
||||||
export const fetcher = gqlFetcherFactory(
|
export const fetcher = gqlFetcherFactory('/graphql');
|
||||||
runtimeConfig.serverUrlPrefix + '/graphql'
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `useSWR` wrapper for sending graphql queries
|
* A `useSWR` wrapper for sending graphql queries
|
||||||
|
|||||||
@@ -21,15 +21,13 @@ export const createAffineCloudBlobStorage = (
|
|||||||
? key
|
? key
|
||||||
: `/api/workspaces/${workspaceId}/blobs/${key}`;
|
: `/api/workspaces/${workspaceId}/blobs/${key}`;
|
||||||
|
|
||||||
return fetchWithTraceReport(runtimeConfig.serverUrlPrefix + suffix).then(
|
return fetchWithTraceReport(suffix).then(async res => {
|
||||||
async res => {
|
if (!res.ok) {
|
||||||
if (!res.ok) {
|
// status not in the range 200-299
|
||||||
// status not in the range 200-299
|
return null;
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return bufferToBlob(await res.arrayBuffer());
|
|
||||||
}
|
}
|
||||||
);
|
return bufferToBlob(await res.arrayBuffer());
|
||||||
|
});
|
||||||
},
|
},
|
||||||
set: async (key, value) => {
|
set: async (key, value) => {
|
||||||
const {
|
const {
|
||||||
|
|||||||
@@ -7,9 +7,16 @@ export function getIoManager(): Manager {
|
|||||||
if (ioManager) {
|
if (ioManager) {
|
||||||
return ioManager;
|
return ioManager;
|
||||||
}
|
}
|
||||||
ioManager = new Manager(runtimeConfig.serverUrlPrefix + '/', {
|
const { protocol, hostname, port } = window.location;
|
||||||
autoConnect: false,
|
ioManager = new Manager(
|
||||||
transports: ['websocket'],
|
`${protocol === 'https:' ? 'wss' : 'ws'}://${hostname}${
|
||||||
});
|
port ? `:${port}` : ''
|
||||||
|
}/`,
|
||||||
|
{
|
||||||
|
autoConnect: false,
|
||||||
|
transports: ['websocket'],
|
||||||
|
secure: location.protocol === 'https:',
|
||||||
|
}
|
||||||
|
);
|
||||||
return ioManager;
|
return ioManager;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user