@@ -153,7 +153,7 @@ export type CloudflareAccessResult = {
|
||||
claims: CloudflareAccessClaims;
|
||||
cfIdentity: CloudflareAccessIdentityProfile;
|
||||
expiresInSeconds?: number;
|
||||
jwt: string;
|
||||
token: string;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -263,7 +263,11 @@ export class CloudflareAccessAuthProvider implements AuthProviderRouteHandlers {
|
||||
const sub = verifyResult.payload.sub;
|
||||
const cfAccessResultStr = await this.cache?.get(`${CACHE_PREFIX}/${sub}`);
|
||||
if (typeof cfAccessResultStr === 'string') {
|
||||
return JSON.parse(cfAccessResultStr) as CloudflareAccessResult;
|
||||
const result = JSON.parse(cfAccessResultStr) as CloudflareAccessResult;
|
||||
return {
|
||||
...result,
|
||||
token: jwt,
|
||||
}
|
||||
}
|
||||
const claims = verifyResult.payload as CloudflareAccessClaims;
|
||||
// Builds a passport profile from JWT claims first
|
||||
@@ -274,14 +278,16 @@ export class CloudflareAccessAuthProvider implements AuthProviderRouteHandlers {
|
||||
const cfIdentity = await this.getIdentityProfile(jwt);
|
||||
// Stores a stringified JSON object in cfaccess provider cache only when
|
||||
// we complete all steps
|
||||
const cfAccessResult: CloudflareAccessResult = {
|
||||
const cfAccessResult = {
|
||||
claims,
|
||||
cfIdentity,
|
||||
expiresInSeconds: claims.exp - claims.iat,
|
||||
jwt,
|
||||
};
|
||||
this.cache?.set(`${CACHE_PREFIX}/${sub}`, JSON.stringify(cfAccessResult));
|
||||
return cfAccessResult;
|
||||
return {
|
||||
...cfAccessResult,
|
||||
token: jwt,
|
||||
};
|
||||
} catch (err) {
|
||||
throw new ForwardedError(
|
||||
'Failed to populate access identity information',
|
||||
|
||||
Reference in New Issue
Block a user