// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { CookieStorage } from 'aws-amplify/adapter-core'; import { AUTH_FLOW_PROOF_MAX_AGE, IS_SIGNING_OUT_COOKIE_NAME, IS_SIGNING_OUT_REDIRECTING_COOKIE_NAME, PKCE_COOKIE_NAME, REMOVE_COOKIE_MAX_AGE, STATE_COOKIE_NAME, } from '../constant'; import { isSSLOrigin } from './origin'; export const createSignInFlowProofCookies = ({ state, pkce, }: { state: string; pkce: string; }) => [ { name: PKCE_COOKIE_NAME, value: pkce, }, { name: STATE_COOKIE_NAME, value: state, }, ]; export const createSignOutFlowProofCookies = () => [ { name: IS_SIGNING_OUT_COOKIE_NAME, value: 'true', }, { name: IS_SIGNING_OUT_REDIRECTING_COOKIE_NAME, value: 'true', }, ]; export const createAuthFlowProofCookiesSetOptions = ( setCookieOptions: CookieStorage.SetCookieOptions, origin: string, ) => ({ domain: setCookieOptions?.domain, path: '/', httpOnly: true, secure: isSSLOrigin(origin), sameSite: 'lax' as const, maxAge: AUTH_FLOW_PROOF_MAX_AGE, }); export const createAuthFlowProofCookiesRemoveOptions = ( setCookieOptions: CookieStorage.SetCookieOptions, ) => ({ domain: setCookieOptions?.domain, path: '/', maxAge: REMOVE_COOKIE_MAX_AGE, });