dauth-context-react 0.2.110 → 0.2.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/dauth.api.d.ts +8 -7
- package/dist/api/interfaces/dauth.api.responses.d.ts +38 -0
- package/dist/dauth-context-react.cjs.development.js +31 -28
- package/dist/dauth-context-react.cjs.development.js.map +1 -1
- package/dist/dauth-context-react.cjs.production.min.js +1 -1
- package/dist/dauth-context-react.cjs.production.min.js.map +1 -1
- package/dist/dauth-context-react.esm.js +31 -28
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/reducer/dauth.actions.d.ts +3 -3
- package/package.json +1 -1
- package/src/api/dauth.api.ts +15 -8
- package/src/api/interfaces/dauth.api.responses.ts +43 -0
- package/src/index.tsx +17 -14
- package/src/reducer/dauth.actions.ts +14 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import { IActionStatus, IDauthDomainState, IDauthState, IDauthUser } from \"./interfaces\";\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { routes } from './utils/routes';\nimport { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n ask,\n token,\n}: {\n domainName: string;\n ask: string;\n token: string;\n}): Promise<any> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ask }),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantVerifyToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n ); \n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\n\ninterface DauthProviderProps {\n domainName: string;\n ask: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, ask, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidAsk = useCallback(\n async (token: string) => {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n ask,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n },\n [domainName, ask]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidAsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }, 1000 * 60 * 1);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidAsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidAsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidAsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n dauth_state_ls: token_ls,\n domainName,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","userReducer","state","action","payload","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","_context5","ask","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","token_ls","_refreshAccessTokenFe","_context6","getItem","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","isValidAsk","useCallback","useEffect","interval","setInterval","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_context7","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import { IActionStatus, IDauthDomainState, IDauthState, IDauthUser } from \"./interfaces\";\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { routes } from './utils/routes';\nimport { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<IupdateUserAPIResponse> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<IsendEmailVerificationAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<IrefreshAccessTokenAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantVerifyToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, token_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","userReducer","state","action","payload","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","_context5","tsk","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_context6","getItem","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","useEffect","interval","setInterval","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_context7","memoProvider","useMemo","React","Provider","value","context","useContext"],"mappings":"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"}
|
|
@@ -614,11 +614,11 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
|
|
|
614
614
|
}();
|
|
615
615
|
var verifyTokenAPI = /*#__PURE__*/function () {
|
|
616
616
|
var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {
|
|
617
|
-
var domainName,
|
|
617
|
+
var domainName, tsk, token, params, response, data;
|
|
618
618
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
619
619
|
while (1) switch (_context5.prev = _context5.next) {
|
|
620
620
|
case 0:
|
|
621
|
-
domainName = _ref5.domainName,
|
|
621
|
+
domainName = _ref5.domainName, tsk = _ref5.tsk, token = _ref5.token;
|
|
622
622
|
params = {
|
|
623
623
|
method: 'POST',
|
|
624
624
|
headers: {
|
|
@@ -626,7 +626,7 @@ var verifyTokenAPI = /*#__PURE__*/function () {
|
|
|
626
626
|
'Content-Type': 'application/json'
|
|
627
627
|
},
|
|
628
628
|
body: JSON.stringify({
|
|
629
|
-
|
|
629
|
+
tsk: tsk
|
|
630
630
|
})
|
|
631
631
|
};
|
|
632
632
|
_context5.next = 4;
|
|
@@ -723,11 +723,11 @@ function setAutoLoginAction(_x2) {
|
|
|
723
723
|
}
|
|
724
724
|
function _setAutoLoginAction() {
|
|
725
725
|
_setAutoLoginAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
726
|
-
var dispatch,
|
|
726
|
+
var dispatch, token_ls, domainName, refreshAccessTokenFetch, getUserFetch;
|
|
727
727
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
728
728
|
while (1) switch (_context2.prev = _context2.next) {
|
|
729
729
|
case 0:
|
|
730
|
-
dispatch = _ref2.dispatch,
|
|
730
|
+
dispatch = _ref2.dispatch, token_ls = _ref2.token_ls, domainName = _ref2.domainName;
|
|
731
731
|
dispatch({
|
|
732
732
|
type: SET_IS_LOADING,
|
|
733
733
|
payload: {
|
|
@@ -736,7 +736,7 @@ function _setAutoLoginAction() {
|
|
|
736
736
|
});
|
|
737
737
|
_context2.prev = 2;
|
|
738
738
|
_context2.next = 5;
|
|
739
|
-
return refreshAccessTokenAPI(domainName,
|
|
739
|
+
return refreshAccessTokenAPI(domainName, token_ls);
|
|
740
740
|
case 5:
|
|
741
741
|
refreshAccessTokenFetch = _context2.sent;
|
|
742
742
|
if (!(refreshAccessTokenFetch.response.status === 200)) {
|
|
@@ -744,7 +744,7 @@ function _setAutoLoginAction() {
|
|
|
744
744
|
break;
|
|
745
745
|
}
|
|
746
746
|
_context2.next = 9;
|
|
747
|
-
return getUserAPI(domainName,
|
|
747
|
+
return getUserAPI(domainName, token_ls);
|
|
748
748
|
case 9:
|
|
749
749
|
getUserFetch = _context2.sent;
|
|
750
750
|
if (!(getUserFetch.response.status === 200)) {
|
|
@@ -1065,12 +1065,12 @@ var resetUser = function resetUser(dispatch) {
|
|
|
1065
1065
|
|
|
1066
1066
|
var DauthProvider = function DauthProvider(props) {
|
|
1067
1067
|
var domainName = props.domainName,
|
|
1068
|
-
|
|
1068
|
+
tsk = props.tsk,
|
|
1069
1069
|
children = props.children;
|
|
1070
1070
|
var _useReducer = useReducer(userReducer, initialDauthState),
|
|
1071
1071
|
dauthState = _useReducer[0],
|
|
1072
1072
|
dispatch = _useReducer[1];
|
|
1073
|
-
var
|
|
1073
|
+
var isValidTsk = useCallback( /*#__PURE__*/function () {
|
|
1074
1074
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(token) {
|
|
1075
1075
|
var verifyToken;
|
|
1076
1076
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
@@ -1080,7 +1080,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1080
1080
|
return verifyTokenAPI({
|
|
1081
1081
|
domainName: domainName,
|
|
1082
1082
|
token: token,
|
|
1083
|
-
|
|
1083
|
+
tsk: tsk
|
|
1084
1084
|
});
|
|
1085
1085
|
case 2:
|
|
1086
1086
|
verifyToken = _context.sent;
|
|
@@ -1100,7 +1100,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1100
1100
|
return function (_x) {
|
|
1101
1101
|
return _ref.apply(this, arguments);
|
|
1102
1102
|
};
|
|
1103
|
-
}(), [domainName,
|
|
1103
|
+
}(), [domainName, tsk]);
|
|
1104
1104
|
// Check token periodically
|
|
1105
1105
|
useEffect(function () {
|
|
1106
1106
|
if (!dauthState.isAuthenticated) return;
|
|
@@ -1117,7 +1117,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1117
1117
|
return _context2.abrupt("return");
|
|
1118
1118
|
case 3:
|
|
1119
1119
|
_context2.next = 5;
|
|
1120
|
-
return
|
|
1120
|
+
return isValidTsk(token_ls);
|
|
1121
1121
|
case 5:
|
|
1122
1122
|
isValid = _context2.sent;
|
|
1123
1123
|
if (!isValid) {
|
|
@@ -1130,19 +1130,20 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1130
1130
|
token: token_ls
|
|
1131
1131
|
}));
|
|
1132
1132
|
case 10:
|
|
1133
|
-
|
|
1133
|
+
setLogoutAction({
|
|
1134
1134
|
dispatch: dispatch
|
|
1135
|
-
})
|
|
1136
|
-
|
|
1135
|
+
});
|
|
1136
|
+
throw new Error('Ask value in DauthProvider is not valid');
|
|
1137
|
+
case 12:
|
|
1137
1138
|
case "end":
|
|
1138
1139
|
return _context2.stop();
|
|
1139
1140
|
}
|
|
1140
1141
|
}, _callee2);
|
|
1141
|
-
})), 1000 * 60 *
|
|
1142
|
+
})), 1000 * 60 * 5);
|
|
1142
1143
|
return function () {
|
|
1143
1144
|
return clearInterval(interval);
|
|
1144
1145
|
};
|
|
1145
|
-
}, [dauthState.isAuthenticated,
|
|
1146
|
+
}, [dauthState.isAuthenticated, isValidTsk]);
|
|
1146
1147
|
// Catch login redirect
|
|
1147
1148
|
useEffect(function () {
|
|
1148
1149
|
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
@@ -1160,11 +1161,11 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1160
1161
|
urlParams = new URLSearchParams(queryString);
|
|
1161
1162
|
token_url = urlParams.get(TOKEN_LS);
|
|
1162
1163
|
if (!(token_url && !dauthState.isAuthenticated)) {
|
|
1163
|
-
_context3.next =
|
|
1164
|
+
_context3.next = 15;
|
|
1164
1165
|
break;
|
|
1165
1166
|
}
|
|
1166
1167
|
_context3.next = 8;
|
|
1167
|
-
return
|
|
1168
|
+
return isValidTsk(token_url);
|
|
1168
1169
|
case 8:
|
|
1169
1170
|
isValid = _context3.sent;
|
|
1170
1171
|
if (!isValid) {
|
|
@@ -1177,10 +1178,11 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1177
1178
|
domainName: domainName
|
|
1178
1179
|
}));
|
|
1179
1180
|
case 13:
|
|
1180
|
-
|
|
1181
|
+
setLogoutAction({
|
|
1181
1182
|
dispatch: dispatch
|
|
1182
|
-
})
|
|
1183
|
-
|
|
1183
|
+
});
|
|
1184
|
+
throw new Error('Ask value in DauthProvider is not valid');
|
|
1185
|
+
case 15:
|
|
1184
1186
|
case "end":
|
|
1185
1187
|
return _context3.stop();
|
|
1186
1188
|
}
|
|
@@ -1196,11 +1198,11 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1196
1198
|
case 0:
|
|
1197
1199
|
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1198
1200
|
if (!(token_ls && !dauthState.isAuthenticated)) {
|
|
1199
|
-
_context4.next =
|
|
1201
|
+
_context4.next = 11;
|
|
1200
1202
|
break;
|
|
1201
1203
|
}
|
|
1202
1204
|
_context4.next = 4;
|
|
1203
|
-
return
|
|
1205
|
+
return isValidTsk(token_ls);
|
|
1204
1206
|
case 4:
|
|
1205
1207
|
isValid = _context4.sent;
|
|
1206
1208
|
if (!isValid) {
|
|
@@ -1209,14 +1211,15 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1209
1211
|
}
|
|
1210
1212
|
return _context4.abrupt("return", setAutoLoginAction({
|
|
1211
1213
|
dispatch: dispatch,
|
|
1212
|
-
|
|
1214
|
+
token_ls: token_ls,
|
|
1213
1215
|
domainName: domainName
|
|
1214
1216
|
}));
|
|
1215
1217
|
case 9:
|
|
1216
|
-
|
|
1218
|
+
setLogoutAction({
|
|
1217
1219
|
dispatch: dispatch
|
|
1218
|
-
})
|
|
1219
|
-
|
|
1220
|
+
});
|
|
1221
|
+
throw new Error('Ask value in DauthProvider is not valid');
|
|
1222
|
+
case 11:
|
|
1220
1223
|
case "end":
|
|
1221
1224
|
return _context4.stop();
|
|
1222
1225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/routes.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import { IActionStatus, IDauthDomainState, IDauthState, IDauthUser } from \"./interfaces\";\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const routes = {\n tenantSignin: 't-signin',\n tenantUpdateUser: 't-update-user',\n tenantGetUser: 't-get-user',\n tenantResendEmailVerification: 't-resend-email-verification',\n tenantRefreshAccessToken: 't-refresh-access-token',\n tenantVerifyToken: \"t-verify-token\",\n};\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { routes } from './utils/routes';\nimport { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n ask,\n token,\n}: {\n domainName: string;\n ask: string;\n token: string;\n}): Promise<any> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ask }),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantVerifyToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n ); \n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\n\ninterface DauthProviderProps {\n domainName: string;\n ask: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, ask, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidAsk = useCallback(\n async (token: string) => {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n ask,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n },\n [domainName, ask]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidAsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }, 1000 * 60 * 1);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidAsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidAsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidAsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n dauth_state_ls: token_ls,\n domainName,\n });\n } else {\n return action.setLogoutAction({ dispatch });\n }\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","routes","tenantSignin","tenantUpdateUser","tenantGetUser","tenantResendEmailVerification","tenantRefreshAccessToken","tenantVerifyToken","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","ask","_callee5$","_context5","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","token_ls","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","isValidAsk","useCallback","verifyToken","useEffect","interval","setInterval","isValid","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_callee7$","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/routes.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import { IActionStatus, IDauthDomainState, IDauthState, IDauthUser } from \"./interfaces\";\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const routes = {\n tenantSignin: 't-signin',\n tenantUpdateUser: 't-update-user',\n tenantGetUser: 't-get-user',\n tenantResendEmailVerification: 't-resend-email-verification',\n tenantRefreshAccessToken: 't-refresh-access-token',\n tenantVerifyToken: \"t-verify-token\",\n};\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { routes } from './utils/routes';\nimport { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<IupdateUserAPIResponse> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<IsendEmailVerificationAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<IrefreshAccessTokenAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantVerifyToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, token_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","routes","tenantSignin","tenantUpdateUser","tenantGetUser","tenantResendEmailVerification","tenantRefreshAccessToken","tenantVerifyToken","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","tsk","_callee5$","_context5","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","verifyToken","useEffect","interval","setInterval","isValid","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_callee7$","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext"],"mappings":"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"}
|