mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
refactor(core, experience): remove no_cache
param
This commit is contained in:
parent
3a839f6d60
commit
a6f96f1d8d
5 changed files with 15 additions and 23 deletions
|
@ -134,14 +134,14 @@ describe('buildLoginPromptUrl', () => {
|
||||||
it('should return the correct url for empty parameters', () => {
|
it('should return the correct url for empty parameters', () => {
|
||||||
expect(buildLoginPromptUrl({})).toBe('sign-in');
|
expect(buildLoginPromptUrl({})).toBe('sign-in');
|
||||||
expect(buildLoginPromptUrl({}, 'foo')).toBe('sign-in');
|
expect(buildLoginPromptUrl({}, 'foo')).toBe('sign-in');
|
||||||
expect(buildLoginPromptUrl({}, demoAppApplicationId)).toBe('sign-in?no_cache=');
|
expect(buildLoginPromptUrl({}, demoAppApplicationId)).toBe('sign-in');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the correct url for firstScreen', () => {
|
it('should return the correct url for firstScreen', () => {
|
||||||
expect(buildLoginPromptUrl({ first_screen: FirstScreen.Register })).toBe('register');
|
expect(buildLoginPromptUrl({ first_screen: FirstScreen.Register })).toBe('register');
|
||||||
expect(buildLoginPromptUrl({ first_screen: FirstScreen.Register }, 'foo')).toBe('register');
|
expect(buildLoginPromptUrl({ first_screen: FirstScreen.Register }, 'foo')).toBe('register');
|
||||||
expect(buildLoginPromptUrl({ first_screen: FirstScreen.SignIn }, demoAppApplicationId)).toBe(
|
expect(buildLoginPromptUrl({ first_screen: FirstScreen.SignIn }, demoAppApplicationId)).toBe(
|
||||||
'sign-in?no_cache='
|
'sign-in'
|
||||||
);
|
);
|
||||||
// Legacy interactionMode support
|
// Legacy interactionMode support
|
||||||
expect(buildLoginPromptUrl({ interaction_mode: InteractionMode.SignUp })).toBe('register');
|
expect(buildLoginPromptUrl({ interaction_mode: InteractionMode.SignUp })).toBe('register');
|
||||||
|
@ -155,7 +155,7 @@ describe('buildLoginPromptUrl', () => {
|
||||||
'direct/method/target?fallback=sign-in'
|
'direct/method/target?fallback=sign-in'
|
||||||
);
|
);
|
||||||
expect(buildLoginPromptUrl({ direct_sign_in: 'method:target' }, demoAppApplicationId)).toBe(
|
expect(buildLoginPromptUrl({ direct_sign_in: 'method:target' }, demoAppApplicationId)).toBe(
|
||||||
'direct/method/target?no_cache=&fallback=sign-in'
|
'direct/method/target?fallback=sign-in'
|
||||||
);
|
);
|
||||||
expect(buildLoginPromptUrl({ direct_sign_in: 'method' })).toBe(
|
expect(buildLoginPromptUrl({ direct_sign_in: 'method' })).toBe(
|
||||||
'direct/method?fallback=sign-in'
|
'direct/method?fallback=sign-in'
|
||||||
|
@ -172,6 +172,6 @@ describe('buildLoginPromptUrl', () => {
|
||||||
{ first_screen: FirstScreen.Register, direct_sign_in: 'method:target' },
|
{ first_screen: FirstScreen.Register, direct_sign_in: 'method:target' },
|
||||||
demoAppApplicationId
|
demoAppApplicationId
|
||||||
)
|
)
|
||||||
).toBe('direct/method/target?no_cache=&fallback=register');
|
).toBe('direct/method/target?fallback=register');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -6,7 +6,6 @@ import {
|
||||||
customClientMetadataGuard,
|
customClientMetadataGuard,
|
||||||
GrantType,
|
GrantType,
|
||||||
ExtraParamsKey,
|
ExtraParamsKey,
|
||||||
demoAppApplicationId,
|
|
||||||
FirstScreen,
|
FirstScreen,
|
||||||
experience,
|
experience,
|
||||||
} from '@logto/schemas';
|
} from '@logto/schemas';
|
||||||
|
@ -91,10 +90,6 @@ export const buildLoginPromptUrl = (params: ExtraParamsObject, appId?: unknown):
|
||||||
const searchParams = new URLSearchParams();
|
const searchParams = new URLSearchParams();
|
||||||
const getSearchParamString = () => (searchParams.size > 0 ? `?${searchParams.toString()}` : '');
|
const getSearchParamString = () => (searchParams.size > 0 ? `?${searchParams.toString()}` : '');
|
||||||
|
|
||||||
if (appId === demoAppApplicationId) {
|
|
||||||
searchParams.append('no_cache', '');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (directSignIn) {
|
if (directSignIn) {
|
||||||
searchParams.append('fallback', firstScreen);
|
searchParams.append('fallback', firstScreen);
|
||||||
const [method, target] = directSignIn.split(':');
|
const [method, target] = directSignIn.split(':');
|
||||||
|
|
|
@ -22,7 +22,6 @@ export const getSignInExperience = async <T extends SignInExperienceResponse>():
|
||||||
return ky
|
return ky
|
||||||
.get('/api/.well-known/sign-in-exp', {
|
.get('/api/.well-known/sign-in-exp', {
|
||||||
searchParams: buildSearchParameters({
|
searchParams: buildSearchParameters({
|
||||||
[searchKeys.noCache]: sessionStorage.getItem(searchKeys.noCache),
|
|
||||||
[searchKeys.organizationId]: sessionStorage.getItem(searchKeys.organizationId),
|
[searchKeys.organizationId]: sessionStorage.getItem(searchKeys.organizationId),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
@ -50,7 +49,6 @@ export const getPhrases = async ({
|
||||||
})
|
})
|
||||||
.get('/api/.well-known/phrases', {
|
.get('/api/.well-known/phrases', {
|
||||||
searchParams: buildSearchParameters({
|
searchParams: buildSearchParameters({
|
||||||
[searchKeys.noCache]: sessionStorage.getItem(searchKeys.noCache),
|
|
||||||
lng: language,
|
lng: language,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<!--Preload well-known settings API-->
|
<!--Preload well-known settings API-->
|
||||||
<script>
|
<script>
|
||||||
const { search } = window.location;
|
const { search } = window.location;
|
||||||
const noCache = search.includes('no_cache');
|
|
||||||
const isPreview = search.includes('preview');
|
const isPreview = search.includes('preview');
|
||||||
// Preview mode does not query sign-in-exp and phrases
|
// Preview mode does not query sign-in-exp and phrases
|
||||||
const preLoadLinks = isPreview ? [] : ['/api/.well-known/sign-in-exp', '/api/.well-known/phrases'];
|
const preLoadLinks = isPreview ? [] : ['/api/.well-known/sign-in-exp', '/api/.well-known/phrases'];
|
||||||
|
@ -17,7 +16,7 @@
|
||||||
preLoadLinks.forEach((linkUrl) => {
|
preLoadLinks.forEach((linkUrl) => {
|
||||||
const link = document.createElement('link');
|
const link = document.createElement('link');
|
||||||
link.rel = 'preload';
|
link.rel = 'preload';
|
||||||
link.href = `${linkUrl}${noCache ? '?no_cache=true' : ''}`;
|
link.href = linkUrl
|
||||||
link.as = 'fetch';
|
link.as = 'fetch';
|
||||||
link.crossOrigin = 'anonymous';
|
link.crossOrigin = 'anonymous';
|
||||||
document.head.appendChild(link);
|
document.head.appendChild(link);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { condString } from '@silverhand/essentials';
|
import { condString } from '@silverhand/essentials';
|
||||||
|
|
||||||
export const searchKeys = Object.freeze({
|
export const searchKeys = Object.freeze({
|
||||||
noCache: 'no_cache',
|
|
||||||
/**
|
/**
|
||||||
* The key for specifying the organization ID that may be used to override the default settings.
|
* The key for specifying the organization ID that may be used to override the default settings.
|
||||||
*/
|
*/
|
||||||
|
@ -15,17 +14,18 @@ export const handleSearchParametersData = () => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: will refactor soon
|
|
||||||
const parameters = new URLSearchParams(search);
|
const parameters = new URLSearchParams(search);
|
||||||
|
|
||||||
if (parameters.get(searchKeys.noCache) !== null) {
|
// Store known search keys to the session storage and remove them from the URL to keep the URL
|
||||||
sessionStorage.setItem(searchKeys.noCache, 'true');
|
// clean.
|
||||||
|
for (const key of Object.values(searchKeys)) {
|
||||||
|
const value = parameters.get(key);
|
||||||
|
if (value) {
|
||||||
|
sessionStorage.setItem(key, value);
|
||||||
|
parameters.delete(key);
|
||||||
|
} else {
|
||||||
|
sessionStorage.removeItem(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
const organizationId = parameters.get(searchKeys.organizationId);
|
|
||||||
if (organizationId) {
|
|
||||||
sessionStorage.setItem(searchKeys.organizationId, organizationId);
|
|
||||||
parameters.delete(searchKeys.organizationId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.history.replaceState(
|
window.history.replaceState(
|
||||||
|
|
Loading…
Reference in a new issue