Skip to content

Commit bf75964

Browse files
Remove Identity Cookie and Refactor Authentication for Okta only (#13537)
* Remove OKTA test code
1 parent f5d9dff commit bf75964

28 files changed

+124
-409
lines changed

dotcom-rendering/fixtures/generated/football-live.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,6 @@ export const footballData: FEFootballDataPage = {
10081008
extendedMostPopular: true,
10091009
ampContentAbTesting: false,
10101010
prebidCriteo: true,
1011-
okta: true,
10121011
imrWorldwide: true,
10131012
acast: true,
10141013
twitterUwt: true,

dotcom-rendering/scripts/perf/k6/article-nier-automata.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1579,7 +1579,6 @@
15791579
"ampContentAbTesting": false,
15801580
"prebidCriteo": true,
15811581
"verticalVideoSurvey": false,
1582-
"okta": true,
15831582
"abDeeplyReadArticleFooter": false,
15841583
"imrWorldwide": true,
15851584
"acast": true,

dotcom-rendering/src/client/bootCmp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { ConsentState } from '@guardian/libs';
22
import { cmp, onConsent } from '@guardian/libs';
33
import { getCookie, log } from '@guardian/libs';
44
import { getLocaleCode } from '../lib/getCountryCode';
5-
import { isUserLoggedInOktaRefactor } from '../lib/identity';
5+
import { isUserLoggedIn } from '../lib/identity';
66
import type { RenderingTarget } from '../types/renderingTarget';
77
import { getOphan } from './ophan/ophan';
88
import { allowRejectAll } from './userFeatures/cookies/allowRejectAll';
@@ -61,7 +61,7 @@ const initialiseCmp = async () => {
6161
const code = await getLocaleCode();
6262
const browserId = getCookie({ name: 'bwid', shouldMemoize: true });
6363
const { pageViewId } = window.guardian.config.ophan;
64-
const isUserSignedIn = await isUserLoggedInOktaRefactor();
64+
const isUserSignedIn = await isUserLoggedIn();
6565
// If user has the "reject all" benefit then show the reduced, "non-advertised" list
6666
const useNonAdvertisedList = allowRejectAll(isUserSignedIn);
6767

dotcom-rendering/src/client/userFeatures/user-features.test.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { getCookie } from '@guardian/libs';
22
import type { AuthStatus } from '../../lib/identity';
33
import {
44
getAuthStatus as getAuthStatus_,
5-
isUserLoggedInOktaRefactor as isUserLoggedInOktaRefactor_,
5+
isUserLoggedIn as isUserLoggedIn_,
66
} from '../../lib/identity';
77
import { AD_FREE_USER_COOKIE, getAdFreeCookie } from './cookies/adFree';
88
import {
@@ -42,17 +42,16 @@ jest.mock('./fetchJson', () => {
4242
});
4343

4444
jest.mock('../../lib/identity', () => ({
45-
isUserLoggedInOktaRefactor: jest.fn(),
45+
isUserLoggedIn: jest.fn(),
4646
getAuthStatus: jest.fn(),
47-
getOptionsHeadersWithOkta: jest.fn(),
47+
getOptionsHeaders: jest.fn(),
4848
}));
4949

5050
const fetchJsonSpy = fetchJson as jest.MockedFunction<typeof fetchJson>;
5151

52-
const isUserLoggedInOktaRefactor =
53-
isUserLoggedInOktaRefactor_ as jest.MockedFunction<
54-
typeof isUserLoggedInOktaRefactor_
55-
>;
52+
const isUserLoggedIn = isUserLoggedIn_ as jest.MockedFunction<
53+
typeof isUserLoggedIn_
54+
>;
5655

5756
const getAuthStatus = getAuthStatus_ as jest.MockedFunction<
5857
typeof getAuthStatus_
@@ -99,9 +98,9 @@ describe('Refreshing the benefits data', () => {
9998
describe('If user signed in', () => {
10099
beforeEach(() => {
101100
jest.resetAllMocks();
102-
isUserLoggedInOktaRefactor.mockResolvedValue(true);
101+
isUserLoggedIn.mockResolvedValue(true);
103102
getAuthStatus.mockResolvedValue({
104-
kind: 'SignedInWithOkta',
103+
kind: 'SignedIn',
105104
} as AuthStatus);
106105
fetchJsonSpy.mockReturnValue(Promise.resolve(fakeUserBenefits));
107106
});
@@ -148,7 +147,7 @@ describe('Refreshing the benefits data', () => {
148147
describe('If user signed out', () => {
149148
beforeEach(() => {
150149
jest.resetAllMocks();
151-
isUserLoggedInOktaRefactor.mockResolvedValue(false);
150+
isUserLoggedIn.mockResolvedValue(false);
152151
fetchJsonSpy.mockReturnValue(Promise.resolve(noBenefits));
153152
});
154153

@@ -192,9 +191,9 @@ describe('Benefit to cookie mapping', () => {
192191
) => {
193192
jest.resetAllMocks();
194193
deleteAllCookies();
195-
isUserLoggedInOktaRefactor.mockResolvedValue(true);
194+
isUserLoggedIn.mockResolvedValue(true);
196195
getAuthStatus.mockResolvedValue({
197-
kind: 'SignedInWithOkta',
196+
kind: 'SignedIn',
198197
} as AuthStatus);
199198

200199
// Mock the fetchJson function to return the current benefit only

dotcom-rendering/src/client/userFeatures/user-features.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* https://github.com/guardian/commercial/blob/1a429d6be05657f20df4ca909df7d01a5c3d7402/src/lib/user-features.ts
55
*/
66

7-
import { getAuthStatus, isUserLoggedInOktaRefactor } from '../../lib/identity';
7+
import { getAuthStatus, isUserLoggedIn } from '../../lib/identity';
88
import { AD_FREE_USER_COOKIE } from './cookies/adFree';
99
import { ALLOW_REJECT_ALL_COOKIE } from './cookies/allowRejectAll';
1010
import { createOrRenewCookie } from './cookies/cookieHelpers';
@@ -22,20 +22,14 @@ export type UserBenefits = {
2222
};
2323

2424
const refresh = async (): Promise<void> => {
25-
if (
26-
(await isUserLoggedInOktaRefactor()) &&
27-
userBenefitsDataNeedsRefreshing()
28-
) {
25+
if ((await isUserLoggedIn()) && userBenefitsDataNeedsRefreshing()) {
2926
await requestNewData();
3027
}
3128
};
3229

3330
const requestNewData = async () => {
3431
const authStatus = await getAuthStatus();
35-
if (
36-
authStatus.kind !== 'SignedInWithCookies' &&
37-
authStatus.kind !== 'SignedInWithOkta'
38-
) {
32+
if (authStatus.kind !== 'SignedIn') {
3933
return Promise.reject('The user is not signed in');
4034
}
4135
return syncDataFromUserBenefitsApi(authStatus).then(persistResponse);

dotcom-rendering/src/client/userFeatures/userBenefitsApi.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
import { isObject } from '@guardian/libs';
2-
import {
3-
getOptionsHeadersWithOkta,
4-
type SignedInWithCookies,
5-
type SignedInWithOkta,
6-
} from '../../lib/identity';
2+
import { getOptionsHeaders, type SignedIn } from '../../lib/identity';
73
import { fetchJson } from './fetchJson';
84
import type { UserBenefits } from './user-features';
95

106
type UserBenefitsResponse = {
117
benefits: string[];
128
};
139
export const syncDataFromUserBenefitsApi = async (
14-
signedInAuthStatus: SignedInWithOkta | SignedInWithCookies,
10+
signedInAuthStatus: SignedIn,
1511
): Promise<UserBenefits> => {
1612
const url = window.guardian.config.page.userBenefitsApiUrl;
1713
if (!url) {
1814
throw new Error('userBenefitsApiUrl is not defined');
1915
}
2016
const response = await fetchJson(url, {
2117
mode: 'cors',
22-
...getOptionsHeadersWithOkta(signedInAuthStatus),
18+
...getOptionsHeaders(signedInAuthStatus),
2319
});
2420
if (!validateResponse(response)) {
2521
throw new Error('invalid response');

dotcom-rendering/src/components/DiscussionMeta.importable.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { joinUrl } from '@guardian/libs';
22
import type { GetDiscussionSuccess, UserProfile } from '../lib/discussion';
3-
import { getOptionsHeadersWithOkta } from '../lib/identity';
3+
import { getOptionsHeaders } from '../lib/identity';
44
import { useApi } from '../lib/useApi';
55
import { useAuthStatus } from '../lib/useAuthStatus';
66
import { useCommentCount } from '../lib/useCommentCount';
@@ -30,17 +30,15 @@ export const DiscussionMeta = ({
3030
);
3131

3232
const { data: userData } = useApi<{ userProfile: UserProfile }>(
33-
authStatus.kind === 'SignedInWithOkta' ||
34-
authStatus.kind === 'SignedInWithCookies'
33+
authStatus.kind === 'SignedIn'
3534
? joinUrl(
3635
discussionApiUrl,
3736
'profile/me?strict_sanctions_check=false',
3837
)
3938
: undefined,
4039
{},
41-
authStatus.kind === 'SignedInWithOkta' ||
42-
authStatus.kind === 'SignedInWithCookies'
43-
? getOptionsHeadersWithOkta(authStatus)
40+
authStatus.kind === 'SignedIn'
41+
? getOptionsHeaders(authStatus)
4442
: undefined,
4543
);
4644

dotcom-rendering/src/components/DiscussionWeb.importable.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
reportAbuse,
1111
unPickComment,
1212
} from '../lib/discussionApi';
13-
import type { SignedInWithCookies, SignedInWithOkta } from '../lib/identity';
14-
import { getOptionsHeadersWithOkta } from '../lib/identity';
13+
import type { SignedIn } from '../lib/identity';
14+
import { getOptionsHeaders } from '../lib/identity';
1515
import { useAuthStatus } from '../lib/useAuthStatus';
1616
import { useHydrated } from '../lib/useHydrated';
1717
import type { Props as DiscussionProps } from './Discussion';
@@ -23,11 +23,11 @@ const getUser = async ({
2323
authStatus,
2424
}: {
2525
discussionApiUrl: string;
26-
authStatus: SignedInWithCookies | SignedInWithOkta;
26+
authStatus: SignedIn;
2727
}): Promise<SignedInUser | undefined> => {
2828
const data: unknown = await fetch(
2929
joinUrl(discussionApiUrl, 'profile/me?strict_sanctions_check=false'),
30-
getOptionsHeadersWithOkta(authStatus),
30+
getOptionsHeaders(authStatus),
3131
)
3232
.then((r) => r.json())
3333
.catch(() => undefined);
@@ -94,8 +94,7 @@ export const DiscussionWeb = (
9494

9595
useEffect(() => {
9696
if (authStatus.kind === 'Pending') return;
97-
if (authStatus.kind === 'SignedOutWithCookies') return;
98-
if (authStatus.kind === 'SignedOutWithOkta') return;
97+
if (authStatus.kind === 'SignedOut') return;
9998

10099
getUser({ discussionApiUrl: props.discussionApiUrl, authStatus })
101100
.then(setUser)

dotcom-rendering/src/components/SecureSignup.importable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ const buildFormData = (
148148
const resolveEmailIfSignedIn = async (): Promise<string | undefined> => {
149149
const { idApiUrl } = window.guardian.config.page;
150150
if (!idApiUrl) return;
151-
const fetchedEmail = await lazyFetchEmailWithTimeout(idApiUrl)();
151+
const fetchedEmail = await lazyFetchEmailWithTimeout()();
152152
if (!fetchedEmail) return;
153153
return fetchedEmail;
154154
};

dotcom-rendering/src/components/SignInGateSelector.importable.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
} from '../lib/contributions';
77
import { getDailyArticleCount, getToday } from '../lib/dailyArticleCount';
88
import type { EditionId } from '../lib/edition';
9-
import { isUserLoggedInOktaRefactor } from '../lib/identity';
9+
import { isUserLoggedIn } from '../lib/identity';
1010
import { parseCheckoutCompleteCookieData } from '../lib/parser/parseCheckoutOutCookieData';
1111
import { constructQuery } from '../lib/querystring';
1212
import { useAB } from '../lib/useAB';
@@ -233,9 +233,7 @@ const SignInGateSelectorDefault = ({
233233
switches,
234234
}: PropsDefault) => {
235235
const authStatus = useAuthStatus();
236-
const isSignedIn =
237-
authStatus.kind === 'SignedInWithOkta' ||
238-
authStatus.kind === 'SignedInWithCookies';
236+
const isSignedIn = authStatus.kind === 'SignedIn';
239237
const [isGateDismissed, setIsGateDismissed] = useState<boolean | undefined>(
240238
undefined,
241239
);
@@ -685,7 +683,7 @@ const SignInGateSelectorAuxia = ({
685683
useOnce(() => {
686684
void (async () => {
687685
// Only make a request to Auxia if user is signed out. This means signed-in users will never receive an Auxia treatment, and therefore never see a sign-in gate
688-
const isSignedIn = await isUserLoggedInOktaRefactor();
686+
const isSignedIn = await isUserLoggedIn();
689687

690688
// Although the component is returning null if we are in preview or it's a paid content
691689
// We need to guard against the API possibly being called before the component returns.

0 commit comments

Comments
 (0)