UNPKG

@aws-amplify/auth

Version:
1 lines 7.45 kB
{"version":3,"file":"signInStore.mjs","sources":["../../../../../src/client/utils/store/signInStore.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { syncSessionStorage } from '@aws-amplify/core';\n// Minutes until stored session invalidates is defaulted to 3 minutes\n// to maintain parity with Amazon Cognito user pools API behavior\nconst MS_TO_EXPIRY = 3 * 60 * 1000;\nconst TGT_STATE = 'CognitoSignInState';\nconst SIGN_IN_STATE_KEYS = {\n username: `${TGT_STATE}.username`,\n challengeName: `${TGT_STATE}.challengeName`,\n signInSession: `${TGT_STATE}.signInSession`,\n expiry: `${TGT_STATE}.expiry`,\n};\nconst signInReducer = (state, action) => {\n switch (action.type) {\n case 'SET_SIGN_IN_SESSION':\n persistSignInState({ signInSession: action.value });\n return {\n ...state,\n signInSession: action.value,\n };\n case 'SET_SIGN_IN_STATE':\n persistSignInState(action.value);\n return {\n ...action.value,\n };\n case 'SET_CHALLENGE_NAME':\n persistSignInState({ challengeName: action.value });\n return {\n ...state,\n challengeName: action.value,\n };\n case 'SET_USERNAME':\n persistSignInState({ username: action.value });\n return {\n ...state,\n username: action.value,\n };\n case 'SET_INITIAL_STATE':\n return getInitialState();\n case 'RESET_STATE':\n clearPersistedSignInState();\n return getDefaultState();\n // this state is never reachable\n default:\n return state;\n }\n};\nconst isExpired = (expiryDate) => {\n const expiryTimestamp = Number(expiryDate);\n const currentTimestamp = Date.now();\n return expiryTimestamp <= currentTimestamp;\n};\nexport const resetActiveSignInState = () => {\n signInStore.dispatch({ type: 'RESET_STATE' });\n};\nconst clearPersistedSignInState = () => {\n for (const stateKey of Object.values(SIGN_IN_STATE_KEYS)) {\n syncSessionStorage.removeItem(stateKey);\n }\n};\nconst getDefaultState = () => ({\n username: undefined,\n challengeName: undefined,\n signInSession: undefined,\n});\n// Hydrate signInStore from syncSessionStorage if the session has not expired\nconst getInitialState = () => {\n const expiry = syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.expiry);\n if (!expiry || isExpired(expiry)) {\n clearPersistedSignInState();\n return getDefaultState();\n }\n const username = syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.username) ?? undefined;\n const challengeName = (syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.challengeName) ?? undefined);\n const signInSession = syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.signInSession) ?? undefined;\n return {\n username,\n challengeName,\n signInSession,\n };\n};\nconst createStore = reducer => {\n let currentState = reducer(getDefaultState(), { type: 'SET_INITIAL_STATE' });\n return {\n getState: () => currentState,\n dispatch: action => {\n currentState = reducer(currentState, action);\n },\n };\n};\nexport const signInStore = createStore(signInReducer);\nexport function setActiveSignInState(state) {\n signInStore.dispatch({\n type: 'SET_SIGN_IN_STATE',\n value: state,\n });\n}\n// Save local state into Session Storage\nexport const persistSignInState = ({ challengeName, signInSession, username, }) => {\n username && syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.username, username);\n challengeName &&\n syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.challengeName, challengeName);\n if (signInSession) {\n syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.signInSession, signInSession);\n // Updates expiry when session is passed\n syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.expiry, String(Date.now() + MS_TO_EXPIRY));\n }\n};\n"],"names":[],"mappings":"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"}